您好我们最近使用mockito框架对整个项目进行了单元测试。我的项目是Java spring rest项目。但覆盖率低于35%。需要提高单元测试覆盖率。
1。想要从代码覆盖中删除不必要的包,比如测试包和bean类
2。我们是否需要为控制器类编写单元测试用例,并从工具中生成类。
如果你能帮助我,我将非常感激。
答案 0 :(得分:1)
测试类和包不计入测试范围,如果是,如何测试代码测试代码等。
当你运行coverage时,它应该只运行在src / main / Java等上。
在调用方法时,应该测试控制器类是否是正确的委托类和方法?
生成的类,如果来自xml使用jaxb等,如果它们只是具有getter,setter和fields的普通旧Java对象,则不需要进行显式测试。它们很可能会通过另一个使用这些对象并调用其方法的类进行测试。这些类将在测试运行之前生成/编译,以便可用 - 确保您不会将生成的类提交到代码库。
您可能需要考虑测试您依赖的第三方库的行为。通过这种方式,您可以立即查看库的任何更新是否可能导致问题,但这应该是高级别的。
答案 1 :(得分:0)
您不需要开始忽略类,而是运行代码覆盖率工具并查看未发现的内容,并使这些单元测试达到标准。也测试你的失败案例!
测试包不应该是35%的一部分,因此删除它们不会有帮助。我所知道的覆盖工具都没有考虑测试包。
对于生成的类 - 很可能不会,但是再次运行代码覆盖率工具,您将很快看到需要涵盖的内容。
如果您使用IntelliJ,则内置覆盖工具: https://www.jetbrains.com/help/idea/2016.2/code-coverage.html
Eclipse使用插件,一个是: http://www.eclemma.org/ 如果你谷歌还有更多。
我更喜欢声纳: http://www.sonarqube.org/
但无论你使用什么工具,这都是要走的路。