在此問題被標記爲重複之前,請閱讀它。 ;) 已經有幾個關於覆蓋工具的問題,但是這與通常的有點不同(我希望)。是否有某種'斷言'覆蓋工具(用於Java)?
根據wikipedia,有幾種不同類型的「覆蓋率」變化會影響術語「覆蓋率」的幾個不同方面。
這裏一個小例子:
public class Dummy {
public int a = 0;
public int b = 0;
public int c = 0;
public void doSomething() {
a += 5;
b += 5;
c = b + 5;
}
}
public class DummyTest {
@Test
public void testDoSomething() {
Dummy dummy = new Dummy();
dummy.doSomething();
assertEquals(10, dummy.c);
}
}
正如你可以看到,測試將有100%的線的覆蓋,現場「C」的價值主張將涵蓋這一領域也間接覆蓋字段'b',但是在字段'a'上沒有斷言覆蓋。 這意味着測試覆蓋了100%的代碼行,並確保c包含期望值,並且很可能b也包含正確的值,但a完全沒有被聲明,並且可能是完全錯誤的值。
所以......現在的問題是否有工具能夠分析(java)代碼並創建一個關於哪些字段/變量/沒有被直接和/或間接地由斷言覆蓋的報告?
(使用干將,而不是公共領域時,你會看到木屐()不叫,但嗯,這不是我想聽到的答案確定;))
所以...你正在尋找某種工具做全面的資料流?這實際上是有用的,雖然我不知道任何副手。有+1。 – 2011-05-11 08:34:55
是的,因爲我很懶惰;)我想要一些說我的東西,嘿,你忘了在YZ類中測試字段XY的值。 – 2011-05-11 08:52:58