我为我的应用程序创建了多个测试用例,所有这些测试用例都链接在一个测试套件类中。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