预期 = 1,接收 = 0 - 为啥我的函数没有在 Angular 测试中调用?

Posted

技术标签:

【中文标题】预期 = 1,接收 = 0 - 为啥我的函数没有在 Angular 测试中调用?【英文标题】:Expected =1, received=0 - why is my function not called in Angular test?预期 = 1,接收 = 0 - 为什么我的函数没有在 Angular 测试中调用? 【发布时间】:2020-11-24 06:44:10 【问题描述】:

我检查控制台 .. shownCategories 不是空的,但在测试中是空的

it("in case edit should call filterCategories()", () => 
         component.state == 'edit';
         if (component.state == 'edit') 
           const filterCategoriesSpy = spyOn(component, 'filterCategories').and.returnValue(
             [
               hiddenVariants: 0,
               id: 187910,
               lang: "de",
               name: "AMG/Exterieur",
               plId: 5389,
               refId: "1015001000",
               type: "AMG",
               visibleVariants: 5
             , 
               hiddenVariants: 0,
               id: 187911,
               lang: "de",
               name: "AMG/Interieur",
               plId: 5389,
               refId: "1015002000",
               type: "AMG",
               visibleVariants: 7,
             ]);
           expect(filterCategoriesSpy).toHaveBeenCalledTimes(1);
         
       );
     

这是函数:

  public addFirstTable() 
    console.log("addFirstTable");
    //awel mara showncategories gaya fadya a lazm amlaha lw state msh edit
    if (this.state != "compare") 
      // this.shownCategories = this.allCategories.map(a => ( ...a ));
      this.shownCatgeories = this.FilterShownCategories();
      console.log("shownCategories if state is not compare", this.shownCategories);
    

输出:

expected=1, received=0

【问题讨论】:

【参考方案1】:

我想你忘了从测试中执行函数。

添加下一行

component.addFirstTable();

在此之前

expect(filterCategoriesSpy).toHaveBeenCalledTimes(1);

【讨论】:

我们应该添加这一行:var shownCategories = component.FilterShownCategories();expect(shownCategories).not.toEqual([]); 如果解决了您的问题,请接受我的回答并点赞。 你应该检查.toEqual(...),而不是.toEqual(...) returnValue 中的给定数组。 如果我的回答对您有帮助,请接受我的回答。谢谢。

以上是关于预期 = 1,接收 = 0 - 为啥我的函数没有在 Angular 测试中调用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的搜索功能没有按预期工作,我该如何解决?

为啥 perfcurve() matlab 函数给了我直线而不是预期的正常曲线?

为啥脚手架没有按预期工作?

为啥 Django ORM explain() 函数没有给出预期的输出?

为啥我从对等端接收的数据与预期输出不匹配?

为啥我的 javascript 代码没有按预期工作