Angular-Karma单元测试不起作用,为什么?

时间:2018-12-17 21:46:48

标签: angular unit-testing jasmine karma-jasmine angular-unit-test

正如标题所示,我想问问是否有人知道如何通过此单元测试的解决方案,将支持服务添加到test123组件后,无论我做什么都不再显示true做。 Image sample of the code and error messages

2 个答案:

答案 0 :(得分:0)

您需要提供要注入到组件的服务的存根。

 providers: [ 
     { 
         provide: SupportService,
         useValue: supportServiceStub 
     }
 ]

在服务中定义了supportServiceStub模拟功能的地方,请在此处https://angular.io/guide/testing#component-class-testing

中阅读更多内容

答案 1 :(得分:0)

将来,请以代码形式而不是图像形式发布代码。

您所概述的代码存在许多问题。这里有一些:

  • 您向我们展示了服务功能secondsToTimeFormat(),但是在组件中您调用了this.supportService.secondsToTime()
  • 在组件中,您调用的那个函数似乎是一个对象,但没有花括号。
  • 您未在.spec文件的TestBed的provider数组中提供SupportService。
  • 由于未对SupportService进行模拟,因此它将尝试调用真实服务,从而导致您看到no provider for Router!的错误。为了隔离此组件,您应该使用间谍来模拟服务调用。

为了向您展示所有这些功能,我将Stackblitz放在一起。

有关如何执行所有操作的详细信息,请参见docs