Angular 角度-因果报应单元测试不起作用,为什么?
正如标题所示,我想问一下,是否有人知道如何让这个单元测试通过的解决方案,在将支持服务添加到test123组件之后,无论我做什么,它都不再显示为true。Angular 角度-因果报应单元测试不起作用,为什么?,angular,unit-testing,jasmine,karma-jasmine,angular-unit-test,Angular,Unit Testing,Jasmine,Karma Jasmine,Angular Unit Test,正如标题所示,我想问一下,是否有人知道如何让这个单元测试通过的解决方案,在将支持服务添加到test123组件之后,无论我做什么,它都不再显示为true。 您需要提供注入组件的服务存根 providers: [ { provide: SupportService, useValue: supportServiceStub } ] 如果您在服务中定义supportServiceStub模拟函数,请在此处阅读更多内容以后,请将代码作为
您需要提供注入组件的服务存根
providers: [
{
provide: SupportService,
useValue: supportServiceStub
}
]
如果您在服务中定义supportServiceStub模拟函数,请在此处阅读更多内容以后,请将代码作为代码而不是图像发布 正如您所概述的,代码存在许多问题。以下是一些:
- 您向我们展示了服务函数
,但在您调用的组件secondsToTimeFormat()
this.supportService.secondsToTime()
- 在组件中,您使用看似对象的对象调用相同的函数,而不使用花括号
- 在.spec文件中的测试床的提供者数组中不提供SupportService
- 因为SupportService没有被模拟,所以它尝试调用真正的服务,这导致了您看到的
路由器没有提供程序的错误代码>。为了隔离这个组件,您应该用间谍来模拟服务调用
有关如何执行所有这些操作的详细信息,请参阅。谢谢您的帮助。我可以再问您一个关于Angle testin的问题吗?我已经添加/编辑了我应该测试的组件和html,我浏览了文档,并试图借助您的示例来做一些事情,但我无法让它工作。。。我可以问一下你是否有时间来检查一下,并发送关于如何工作的帮助:@Kiki-这真的应该是一个单独的问题,但我分叉了你的Stackblitz以编辑它,并在你的更新中提出了这个问题。注释太多细节了,所以我用更新的内容注释了代码。