我目前有一个抽象的BaseTest
类,其中包含几个通用的@Test
。
public abstract class BaseTest {
private String expected;
private String actual;
public BaseTest(String expected, String actual) {
this.expected = expected;
this.actual = actual;
}
public String methodToTest(String line) {
return line.trim();
}
@Test
public void testNull() {
assertNull(methodToTest(null));
}
// more @Tests...
}
SomeTest
扩展了 BaseTest
,在其中定义了各种测试案例。
@RunWith(Parallelized.class)
public class SomeTest extends BaseTest {
// @Parameters (test cases) goes here...
}
我有很多测试,它们都扩展了BaseTest
,然后我把它们放在RunAllTests
的Suite
中。
@RunWith(Suite.class)
@SuiteClasses({ SomeTest.class, AnotherTest.class, etc... })
public class RunAllTests { }
假设我想添加更多的@Test
,但是我想将它们包含在另一个类中。
public class WhitespaceTest extends BaseTest {
public WhitespaceTest(String expected, String actual) {
super(expected, actual);
}
@Test
public void testNewline() {
assertEquals(expected, methodToTest(actual + "\n"));
}
// more @Tests...
}
看起来我需要另一个“层次结构”Suites
以运行每个测试,这样对于RunAllTests
中的每个类,我都要运行BaseTest
和 WhitespaceTest
。我该如何实现这个层次结构?