我想不起来如何使用JUnit3 TestSuite了,在谷歌发现这个之后
public class MyTestsuite extends TestSuite {
public static Test suite() {
final TestSuite s = new TestSuite();
s.addTestSuite(Test1.class);
s.addTestSuite(Test2.class);
return s;
}
}这似乎很管用,但在我看来却很奇怪:
public class MyTestsuite extends AbstractTestSuite {
@Override
public void suite() {
add(Test1.class);
add(Test2.class);
}
}基本上,我很好奇在我的第一个例子中这样做是否真的是可行的。此外,我想知道这样一个界面背后的设计决策可能是什么。
这也起作用了,也许不那么奇怪了:
public class MyTestsuite extends TestSuite {
MyTestsuite() {
super(Test1.class, Test2.class);
}
public static Test suite() {
return new TestSuite();
}
}发布于 2012-09-08 17:28:22
如果要组合测试套件并按类引用它们,则使用第一个示例。
第二个示例不遵循定义套件的JUnit 3模式,正如JUnit 3食谱讨论了TestRunner使用的static suite方法。
TestRunner类也是讨论它在其Javadocs中的使用。
如果这个类是
Test类定义的静态suite方法,那么它将被调用并运行返回的测试。
发布于 2017-10-27 09:49:05
在第一个示例中,最好返回套件子类MyTestsuite,而不是junit.framework.TestSuite,这样,当单击IDE中的套件时,可以看到该类而不是junit.framework.TestSuite代码。
public class MyTestsuite extends TestSuite {
public static Test suite() {
final MyTestsuite s = new MyTestsuite();
s.addTestSuite(Test1.class);
s.addTestSuite(Test2.class);
return s;
}
}第三个示例不工作,因为返回的套件是空的,这里必须返回套件子类。顺便指出,正在使用的构造函数仅存在于Junit 3.8.2中。
public class MyTestsuite extends TestSuite {
MyTestsuite() {
super(new Class[]{Test1.class, Test2.class});
}
public static Test suite() {
return new MyTestsuite();
}
}https://stackoverflow.com/questions/12332809
复制相似问题