公司现在要求写单元测试并且方法的覆盖率要达到百分之百。

曾经写单元测试一般就是在工程目录 test 文件中写接口的单元测试能测通就行了,但是现在需要统计覆盖率, idea 自带的有测试覆盖率的插件,就在 idea 启动项里面。

本来 service 中只有 个公共方法, 个私有方法,并且在都写了测试用例,而且全部都跑通了,跑没跑到方法可以通过代码左边的颜色提示进行区分,默认红色是没有跑过的代码,绿色是已经跑过的代码。

我在 idea 自带的统计页面中查看,发现确实有 个方法覆盖到了,但是这个类一共有 个方法,然后我数了好几遍都没有搞明白。 然后找到另外一个统计覆盖率的工具 jacoco ,使用 jacoco 重新统计了一下,通过提供的 ui页面 终于找到了问题所在。

jacoco 这里可以很明显看到除了我文件中的 个方法还统计了一个 构造函数

现在假设我用 idea 自带的统计覆盖率工具统计的时候把无参构造函数统计进去了,但是我没有写无参构造函数的测试用例,所以才会出现明明只有 个方法,统计的时候会有 个方法的原因。

那么是不是可以修改 idea 检测代码覆盖率的工具为 jacoco 就可以解决这个问题了。

修改idea检测代码覆盖率工具

修改步骤:run -> Edit Configurations

测试是否成功

ok,成功在统计代码覆盖率忽略掉无参的构造函数。

  •