【发布时间】:2018-05-18 18:56:04
【问题描述】:
在使用 Angular (2,4,5,...) 开发应用程序时,人们经常使用 *ngIf="whatever_condition",而 ngSwitch 也很少使用
但是,我还没有看到任何工具能够提供有关实际测试了多少代码的信息。..
显然对于 Typescript 文件,有 istanbul loader 来获得覆盖率,但我认为它给出了具有高覆盖率的错误画面,因为大部分逻辑位于没有测量的视图中。即如果我在 Typescript 上的分支覆盖率为 90%,但视图中的分支仍然是原来的两倍,那么实际覆盖率可能在 45% 到 90% 之间。
是否有任何工具能够测量 Angular 视图的代码覆盖率并以有意义的方式显示它?
【问题讨论】:
-
Webstorm has code coverage 但是我没用过。
-
我真的看不出这有多大帮助.. Angular 模板被编译为 javascript,并且执行的内容和模板本身之间没有链接.. 除非我错了,你只需要知道如何配置它..
-
*ngIf="whatever_condition"中的逻辑有多复杂。 code coverage for karma 通常会考虑逻辑所在的文件。 It's a code smell 并且您应该考虑将whatever_condition 放在控制器中,因为您不需要测试视图。 -
我完全同意,按照所有正常标准,这是一种代码异味,但这是“Angular 2+ 方式”,我相信我还需要为此声明找到相关来源..
标签: angular unit-testing code-coverage