2012-04-19 72 views
0

我在使用單元測試來查看每個測試的覆蓋率時,在eclipse中使用了Emma覆蓋工具。然而某些行沒有得到覆蓋即時在抽象類的類聲明:eclipse中的Emma覆蓋工具可以忽略某些行嗎?

public abstract class ... { 

是否有可能要麼得到艾瑪涉及該行或 - 最好 - 忽略它?

謝謝, 阿列克謝藍。

回答

2

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%的覆蓋率。

+0

不知道爲什麼我並不總是給這樣的事情100%覆蓋,但我可以學會接受少於100%的大聲笑:) – 2012-05-16 10:52:45

1

我有一個抽象類,它有一堆靜態方法,但沒有別的。類聲明沒有涵蓋。我在JUnit測試方法中添加了這個:

new AbstractClass() { 

}; 

該類聲明已被覆蓋。但是,在JUnit測試之外進行覆蓋是另一回事,因爲沒有子類。