В настоящее время у меня есть абстрактный класс 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
extends BaseTest
, где я определяю различные тестовые примеры.
@RunWith(Parallelized.class)
public class SomeTest extends BaseTest {
// @Parameters (test cases) goes here...
}
У меня много тестов, которые расширяют BaseTest
, которые затем помещаются в Suite
в RunAllTests
.
@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
. Как я могу реализовать этот уровень?