首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度:如何将私有方法纳入代码覆盖范围?

角度:如何将私有方法纳入代码覆盖范围?
EN

Stack Overflow用户
提问于 2020-06-29 18:16:34
回答 2查看 1.6K关注 0票数 10

是否有从ng test --code-coverage添加私有方法到角8中的代码覆盖率报告?

我们的Ng TestCode覆盖率很低,因为它检查私有方法。

根据文章,私有方法不应该要求单元测试。只有调用私有方法的公共方法才需要。

*读取标签;如果有任何方法以public为前缀,则应该对其进行单元测试。团队还可以开始将private放在方法之前。这种方法是否允许ng测试找到需要测试的内容?

https://softwareengineering.stackexchange.com/questions/100959/how-do-you-unit-test-private-methods

https://anthonysciamanna.com/2016/02/14/should-private-methods-be-tested.html#:~:text=Unit%20Tests%20Should%20Only%20Test,are%20dependent%20on%20the%20object

目前测试的类型记录在角8。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-29 18:49:18

也检查私有方法的代码覆盖率。

通常,有两种情况下调用私有方法。

  • 如果在公共方法中调用私有方法(直接或如果满足任何条件)

在这种情况下,您需要在测试中调用公共方法,并直接覆盖底层的私有方法,并满足测试中的条件。

  • 如果从DOM事件调用私有方法,请单击“例如”按钮

在这种情况下,您需要使用By.css和fire click事件捕获按钮。

注:在引入角常春藤之前,我们可以在TS类中将按钮单击事件绑定到私有方法上,但从现在起就不可能了。它会产生编译错误。

Property 'onClickMethod' is private and only accessible within class 'AppComponent'

票数 6
EN

Stack Overflow用户

发布于 2020-07-08 16:41:56

我对上面阿基尔解释的答案再加几点。

  1. 我看到在您的代码中使用的三元操作。确保您正在编写涵盖所有场景的测试用例。(负值、正值或基于特定值)。在代码中要做的所有有条件的事情也是如此。
  2. 运行测试用例后,请确保正在打开开发人员工具并调试实际过程。这是因为有时您的代码会给出异常,但是您的测试用例仍然会通过。在这种情况下,例外后的大多数行将不包括在内。

始终确保您的测试用例运行中没有控制台错误。Chrome调试器工具应该优先考虑。

希望这能帮到你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62644324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档