我正在尝试为我的应用程序编写一些JUnits,我相信我有大约80%的代码覆盖率,但是当我运行测试时,我的报告看起来如下;
这给了我52%的代码覆盖率结果,这不是主意。
是否有其他方法可以编写预期异常的方法,以保持我的覆盖率?
由于
答案 0 :(得分:2)
不要担心测试的代码覆盖率只会考虑源代码的代码覆盖率(而不是测试代码)。
如果您使用的是emma或jaCoCo,则可以使用过滤器来仅检测或报告特定类或目录的结果。
如果您有src
和test
答案 1 :(得分:0)
可能您正在使用Eclipse EMMA插件来衡量代码覆盖率。如此处所述http://emma.sourceforge.net/faq.html#q.blockcoverage Emma测量阻塞(非线性)覆盖,因此当您的代码在某个时刻抛出异常时,该块未被覆盖,因为未到达它的结尾。 EMMA FAQ说:
块是一系列字节码指令,没有任何跳转或跳转 目标。换句话说,一个基本的块总是(在absense of 例外)作为一个原子单位执行(如果它完全输入)
和
因此保证覆盖的基本块没有执行 在给定的覆盖率运行会话中至少失败一次。
还有一件事。
您不应该查看测试类的覆盖范围,关注业务(常规)。