我在使用单元测试来查看每个测试的覆盖率时,在eclipse中使用了Emma覆盖工具。然而某些行没有得到覆盖即时在抽象类的类声明:eclipse中的Emma覆盖工具可以忽略某些行吗?
public abstract class ... {
是否有可能要么得到艾玛涉及该行或 - 最好 - 忽略它?
谢谢, 阿列克谢蓝。
我在使用单元测试来查看每个测试的覆盖率时,在eclipse中使用了Emma覆盖工具。然而某些行没有得到覆盖即时在抽象类的类声明:eclipse中的Emma覆盖工具可以忽略某些行吗?
public abstract class ... {
是否有可能要么得到艾玛涉及该行或 - 最好 - 忽略它?
谢谢, 阿列克谢蓝。
Emma已经忽略了无法到达的行,例如类声明。它们没有被标记为覆盖,但也不计入总体线路。
我只是使用此代码验证它:
import junit.framework.TestCase;
public class Test extends TestCase {
public void testSomething() {
assertTrue(new Check().check());
}
}
abstract class AbstractCheck {
protected abstract boolean check();
}
class Check extends AbstractCheck {
@Override
protected boolean check() {
return true;
}
}
返回100%的覆盖率。
我有一个抽象类,它有一堆静态方法,但没有别的。类声明没有涵盖。我在JUnit测试方法中添加了这个:
new AbstractClass() {
};
该类声明已被覆盖。但是,在JUnit测试之外进行覆盖是另一回事,因为没有子类。
不知道为什么我并不总是给这样的事情100%覆盖,但我可以学会接受少于100%的大声笑:) – 2012-05-16 10:52:45