我爲我的應用程序創建了多個測試用例,所有這些測試用例都鏈接在一個測試套件類中。JUnit 4:測試用例返回測試套件中其他測試中使用的對象
但是,我想將第一個測試中創建的對象傳遞給其他人。
爲了更清楚起見,第一個測試測試了一個類,該類使用來自我的數據庫的數據創建了一個複雜的對象。我希望其他人測試對象本身的方法。
這是我如何定義我的測試套件類:
package tests.testSuites;
import tests.Test1;
import tests.Test2;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
Test1.class
Test2.class
})
public class DataTestSuite {
}
不過,我想有這樣的地方:
MyObject obj=Test1.testcreation();
Test2.testMethod(obj);
我如何可以結合一個普通的JUnit TestSuite類的定義與是否需要將創建的對象傳遞給我的其他測試?
編輯
的信息,測試套件是在測試運行器類推出。該類有助於格式化結果並創建自定義日誌文件。
這是怎麼調用的測試套件:
public class MetExploreTestRunner {
public static void main(String[] args) {
Result result=JUnitCore.runClasses(DataTestSuite.class);
if(result.wasSuccessful()){
System.out.println("All tests succesful ");
}else{
for(Failure failure:result.getFailures()){
System.out.println(failure.toString());
}
}
}
}
也許你應該嘗試使用@Parametrized註釋 - http://junit.sourceforge.net/javadoc/org/junit/runners/Parameterized.html? – BlueLettuce16 2014-11-05 09:33:04
如果您不重新創建用於測試每個測試的對象,那麼創建依賴於順序的測試(因爲之前的測試可能已改變對象的狀態)會有風險。更好地爲我相信的每個測試創建測試對象。 – 2014-11-05 09:34:32
@ErwinBolwidt:這很好。在這種情況下,應該使用註解來創建對象。但是,如果您從數據庫獲取對象,則不再是單元測試,而是集成測試。 – BlueLettuce16 2014-11-05 09:35:40