angular - Angular - Karma 单元测试不起作用,为什么?
问题描述
正如标题所示,我想问是否有人知道如何让这个单元测试通过的解决方案,在将支持服务添加到 test123 组件后,无论我做什么它都不会再显示 true。 代码和错误消息的图像示例
解决方案
将来,请将代码发布为代码,而不是图像。
如您所述,代码存在许多问题。这里有几个:
- 您向我们展示了服务功能
secondsToTimeFormat()
,但在您调用的组件中this.supportService.secondsToTime()
。 - 在组件中,您使用看起来像对象的东西调用相同的函数,而没有花括号。
- 您没有在 .spec 文件的 TestBed 的 providers 数组中提供 SupportService。
- 由于 SupportService 没有被模拟,它会尝试调用真正的服务,这导致了你看到的错误
no provider for Router!
。为了隔离这个组件,你应该用一个间谍来模拟服务调用。
为了向您展示所有这些实际工作,我将这个Stackblitz放在一起。
有关如何执行所有这些操作的详细信息,请参阅文档。
推荐阅读
- android - Android 是否将视图对象层次结构保留在内存中?
- python - 通过 .bat 文件将参数传递给由“PyInstaller”转换的 .exe 文件
- shell - “kill %1”失败并在脚本中打印“No such process”
- singlestore - memsql中未强制的唯一性与强制的唯一性
- sql-server - 为什么 .bacpac 文件需要几个小时才能导入?
- mysql - CASE语句中的MySQL计算变量
- php - WooCommerce:将类添加到产品过滤器属性选项
- jquery - 在同一页面中使用 2 个不同的 jquery t-datepickers
- javascript - 使用Javascript自动匹配/建议两个数据库表之间的相似列
- c - 如果在reset handler内部调用main函数,其他的中断是怎么处理的?