【发布时间】:2020-01-27 12:01:35
【问题描述】:
我正在尝试学习如何使用 Karma 和 Jasmine 为 Angular 进行单元测试。
我的问题是我使用 spyOn() 和 expect.toHaveBeenCalled() 实现了它,即使 Karma 说它通过了测试,代码覆盖率也没有更新。
我是角度单元测试的新手,我不知道如何正确测试方法以获得代码覆盖率。
感谢大家的帮助。
【问题讨论】:
-
你只测试了这两种方法中的一种......
-
顺便说一句,注入服务的目的是什么,创建一个新服务但仍然不使用任何这些实例,因为您的方法是静态的?!您应该从类中提取这些方法并将它们导出为单独的函数,或者创建实例方法。
-
我知道我只是在测试一个。问题是我正在测试的那个没有被标记为已测试,而我没有测试的那个被标记为已测试。
-
正如我所说,我是单元测试的新手,也许这就是我进行无意义注入的原因。
-
spyOn(EnvironmentService, 'isProduction');覆盖服务方法,然后EnvironmentService.isProduction();正在调用间谍而不是您的方法。因此不会调用您的方法。有效的测试将删除间谍和类似expect(EnvironmentService.isProduction()).toBe(false)
标签: angular unit-testing karma-jasmine karma-coverage