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

Angular - Karma unit test not working, why?

如题,请问有谁知道如何让这个单元测试通过的解决方法,给test123组件添加support服务后,无论怎样都不显示true了我所做的。 Image sample of the code and error messages

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

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

在服务中定义 supportServiceStub 模拟函数的位置,请在此处阅读更多内容 https://angular.io/guide/testing#component-class-testing

以后,请post编码为代码,而不是图像。

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

  • 您向我们展示了服务功能 secondsToTimeFormat(),但在您调用的组件中 this.supportService.secondsToTime()
  • 在组件中,您使用看似对象的对象调用相同的函数,但没有大括号。
  • 您没有在 .spec 文件中的 TestBed 提供程序数组中提供 SupportService。
  • 由于 SupportService 未被模拟,它会尝试调用真正的服务,这导致了您在 no provider for Router! 中看到的错误。为了隔离此组件,您应该使用间谍模拟服务调用。

为了向您展示这一切的实际效果,我整理了这个 Stackblitz

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