當您爲Javolution測試編寫測試時,模式和做什麼以及不該做什麼?我特別想知道:Javolution測試模式,注意事項和注意事項
- TestCase.execute()不允許拋出異常。如何處理它們?重申爲RuntimeException或存儲在變量中,並在TestCase.validate()或其他東西中聲明?
- 是否有任何圖形運行程序向您顯示失敗的測試,即在Eclipse中?也許有人寫了一個JUnit-Wrapper,以便我可以使用Eclipse JUnit Runner?
當您爲Javolution測試編寫測試時,模式和做什麼以及不該做什麼?我特別想知道:Javolution測試模式,注意事項和注意事項
javadoc和javolution來源給出了一些例子和設計原理。 另請參閱an article on serverside。
Javolution測試只包含一個測試,並且將測試代碼的執行與驗證分隔爲不同的方法execute()和validate()。因此,相同的測試類可以用於迴歸測試和速度測試(其中省略了對validate()的調用)。此外,許多測試的執行是平行的。
這種分離的缺點是:由於在調用validate()之前需要保存執行代碼的結果,因此會消耗更多的內存。 (在tearDown中釋放這些結果可能是一個好主意。) 如果驗證來自與練習不同的類,則可能難以調試失敗。
通過使用以下JUnit適配器並在eclipse中運行,您可以獲得某種圖形testrunner。您可以單獨啓動/調試失敗的測試。不幸的是,圖形表示不包括關於實際測試什麼 - 它只是顯示的數字[0],[1]等
@RunWith(Parameterized.class) 公共類JavolutionJUnit4Adapter {
protected final javolution.testing.TestCase test;
public JavolutionJUnit4Adapter(javolution.testing.TestCase testcase) {
this.test = testcase;
}
@org.junit.Test
public void executeTest() throws Exception {
enter(REGRESSION);
try {
new javolution.testing.TestSuite() {
@Override
public void run() {
test(test);
}
}.run();
} finally {
exit();
}
}
@Parameters
public static Collection<javolution.testing.TestCase[]> data() {
javolution.testing.TestSuite fp = new WhateverSuiteYouWantToRun();
List<javolution.testing.TestCase> tests = fp.getTestCases();
Collection<javolution.testing.TestCase[]> res = new ArrayList<javolution.testing.TestCase[]>();
for (javolution.testing.TestCase t : tests) {
res.add(new javolution.testing.TestCase[] { t });
}
return res;
}
}