如何在保持代码覆盖率的同时进行Junit测试并预期异常

时间:2014-07-25 11:02:09

标签: java exception junit code-coverage

我正在尝试为我的应用程序编写一些JUnits,我相信我有大约80%的代码覆盖率,但是当我运行测试时,我的报告看起来如下;

code coverage

这给了我52%的代码覆盖率结果,这不是主意。

是否有其他方法可以编写预期异常的方法,以保持我的覆盖率?

由于

2 个答案:

答案 0 :(得分:2)

不要担心测试的代码覆盖率只会考虑源代码的代码覆盖率(而不是测试代码)。

如果您使用的是emma或jaCoCo,则可以使用过滤器来仅检测或报告特定类或目录的结果。

如果您有srctest

的单独文件夹,这样做会容易得多

答案 1 :(得分:0)

可能您正在使用Eclipse EMMA插件来衡量代码覆盖率。如此处所述http://emma.sourceforge.net/faq.html#q.blockcoverage Emma测量阻塞(非线性)覆盖,因此当您的代码在某个时刻抛出异常时,该块未被覆盖,因为未到达它的结尾。 EMMA FAQ说:

  

块是一系列字节码指令,没有任何跳转或跳转   目标。换句话说,一个基本的块总是(在absense of   例外)作为一个原子单位执行(如果它完全输入)

  

因此保证覆盖的基本块没有执行   在给定的覆盖率运行会话中至少失败一次。



还有一件事。
您不应该查看测试类的覆盖范围,关注业务(常规)。