首页 > 解决方案 > Angular - Karma 单元测试不起作用,为什么?

问题描述

正如标题所示,我想问是否有人知道如何让这个单元测试通过的解决方案,在将支持服务添加到 test123 组件后,无论我做什么它都不会再显示 true。 代码和错误消息的图像示例

标签: angularunit-testingjasminekarma-jasmineangular-unit-test

解决方案


将来,请将代码发布为代码,而不是图像。

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

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

为了向您展示所有这些实际工作,我将这个Stackblitz放在一起。

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


推荐阅读