Unit testing 执行无效函数后,业力单元测试不起作用

Unit testing 执行无效函数后,业力单元测试不起作用,unit-testing,angular,typescript,jasmine,karma-runner,Unit Testing,Angular,Typescript,Jasmine,Karma Runner,spec.ts中的单元测试代码 组件测试法 加载菜单(lstMenu、menustring、submenustartstring、submenusendstring){ 警报(菜单提示); this.subitems=[]; 让menu=lstMenu.find(myObj=>myObj.MenuType==menustring); 如果(菜单!==null){ this.menufilter=lstMenu.filter(myObj=>myObj.MenuType.startsWith(sub

spec.ts中的单元测试代码

组件测试法

加载菜单(lstMenu、menustring、submenustartstring、submenusendstring){
警报(菜单提示);
this.subitems=[];
让menu=lstMenu.find(myObj=>myObj.MenuType==menustring);
如果(菜单!==null){
this.menufilter=lstMenu.filter(myObj=>myObj.MenuType.startsWith(submenustartstring))
.filter(x=>x.MenuType.endsWith(submenuendstring));
如果(this.menufilter.length>1){
for(让menuType=0;menuType
显示结果的单元测试失败。主要问题是警报
警报(12)不触发。为什么我的警报(12)在此
this.modalNota.LoadMenus(数组,'A00','A','0')之后没有命中执行组件代码

我为此奋斗了一整天。请给我答案


您的
expect
是否触发?是的,但我看不到警报(12)。您的
expect
是否触发?是的,但我看不到警报(12)。
  it('Should test LoadMenus method', () => {
            let arrays = [{ "Id": 1, "MenuType": "A00", "MenuName": "Search", "UserDetail": { "UserName": "rajendranra" } 
            alert(11);// executed  
                        this.modalNota.LoadMenus(arrays, 'A00', 'A', '0');
            alert(12);// does not execute
            expect(this.modalNota.cocmenuitems[0].MenuName).toBe('Search');
        });
LoadMenus(lstMenu, menustring, submenustartstring, submenuendstring) {
        alert(menustring);
        this.subitems = [];
        let menu = lstMenu.find(myObj => myObj.MenuType === menustring);
        if (menu !== null) {
            this.menufilter = lstMenu.filter(myObj => myObj.MenuType.startsWith(submenustartstring))
                .filter(x => x.MenuType.endsWith(submenuendstring));
            if (this.menufilter.length > 1) {
                for (let menuType = 0; menuType < this.menufilter.length; menuType++) {
                    if (this.menufilter[menuType].MenuType !== menustring) {
                        this.subitems.push({
                            label: this.menufilter[menuType].MenuName,
                            routerLink: [this.GetLink(this.menufilter[menuType].MenuName)]
                        });
                    }
                }
                alert(menu.MenuName);
                this.cocmenuitems.push({ label: menu.MenuName, routerLink: [this.GetLink(menu.MenuName)], items: this.subitems });
            } else {
                alert(menu.MenuName);
                this.cocmenuitems.push({ label: menu.MenuName, routerLink: [this.GetLink(menu.MenuName)] });
            }
        }
    }