angular - 无法增加 Angular 单元测试中的代码覆盖率

标签 angular unit-testing karma-jasmine karma-coverage

我正在尝试学习如何使用 Karma 和 Jasmine 对 Angular 进行单元测试。

我的问题是我用spyOn()和expect.toHaveBeenCalled()来实现它,即使Karma说通过了测试,代码覆盖率也没有更新。

我是 Angular 单元测试的新手,我不知道如何正确测试方法以获得代码覆盖率。

感谢大家的帮助。

最佳答案

实际上,您不仅需要创建一个 spy ,还需要执行它来扩大覆盖范围。 spy 用 stub 替换了 spy 功能。如果你想让这个spy函数被正常调用,你需要在你的spy中添加.and.callThrough()

spyOn(EnvironmentService, 'isProduction').and.callThrough()

您还可以在这里阅读更多信息:about spy and callThrough

关于angular - 无法增加 Angular 单元测试中的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58129821/

相关文章:

unit-testing - Istanbul 尔纽约市排除测试文件

c# - 为什么我*不*在 VS2008 的单元测试中收集代码覆盖率数据?

angularjs - Angular Karma - 具有独立范围和 Controller 的指令,调用 element.isolateScope() 返回未定义

angular - ChartJS 插件数据标签在 Ionic 3 上不显示标签

javascript - Angular 9 - 无法绑定(bind)到 'formGroup',因为它不是 'form' 的已知属性

ruby-on-rails - 如何在 Rails 测试中填充查找表

javascript - Karma 自动 watch 不工作

javascript - Jasmine测试设置组件变量

javascript - Angular 2 : call component method from javascript function

angular - Flex 布局高度问题