【问题标题】:Mockito Junit testcoverage removal of unit test covergeMockito Junit 测试覆盖去除单元测试覆盖
【发布时间】:2016-07-28 11:36:29
【问题描述】:

您好,最近我们使用 mockito 框架对整个项目进行了单元测试。我的项目在 Java spring rest 项目上。但覆盖率低于 35%。需要提高单元测试覆盖率。
1。想要从代码覆盖中删除 unneccesay 包,如测试包和 bean 类
2。我们是否需要为控制器类和工具生成的类编写单元测试用例。

如果你能帮助我,我将非常感激。

【问题讨论】:

  • 您已经尝试过如何从代码覆盖工具中排除类? - 你用哪一个?

标签: java spring unit-testing junit mockito


【解决方案1】:

测试类和包不计入测试覆盖率,如果是,您如何测试测试代码的代码等。

当你运行覆盖时,它应该只在 src/main/Java 等上运行。

控制器类应该被测试,当你调用一个方法时,是否调用了正确的委托类和方法?

生成的类,如果使用 jaxb 等从 xml 生成的类,如果它们只是带有 getter、setter 和字段的普通旧 Java 对象,则不需要显式测试。它们很可能会通过另一个使用这些对象并调用它们的方法的类进行测试。这些类将在您的测试运行之前生成/编译,因此可用 - 确保您没有将生成的类提交到您的代码存储库。

您可能需要考虑测试您所依赖的第三方库的行为。通过这种方式,您可以立即查看库的任何更新是否会导致问题,但这应该是从高级别进行的。

【讨论】:

    【解决方案2】:

    您不需要开始忽略类,而是运行代码覆盖工具并查看未发现的内容,并使这些单元测试达到标准。也测试你的失败案例!

    测试包不应该是 35% 的一部分,因此删除它们不会有帮助。我所知道的覆盖工具都没有考虑测试包。

    至于生成的类 - 很可能不会,但再次运行代码覆盖工具,您会很快看到需要覆盖的内容。

    如果您使用 IntelliJ,则内置覆盖工具: https://www.jetbrains.com/help/idea/2016.2/code-coverage.html

    Eclipse使用插件,一种是: http://www.eclemma.org/ 如果你谷歌,还有更多。

    我更喜欢声纳: http://www.sonarqube.org/

    但无论您使用什么工具,这都是可行的方法。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多