私は現在、いくつかの汎用@Test
を保持する抽象的なBaseTest
クラスを持っています。パラメータ化された多層スイート
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...
}
私はその後、RunAllTests
にSuite
に入れBaseTest
を拡張する多くのテストを、持っています。
@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...
}
RunAllTests
内の各クラスのために、私はBaseTest
とWhitespaceTest
を実行するように、私は、すべての単一のテストを実行するSuites
の別の「層」を必要と表示されます。このレイヤーを実装するにはどうすればいいですか?
BaseTest
内::
わかりません。現在のスイートに 'WhitespaceTest'を追加できないのはなぜですか?もちろん、複数のスイートがあります – dkatzel
現在のスイートの各 'BaseTest'に対して' WhitespaceTest'で各テストを実行したいと思います。 –
スイートの問題よりも多重継承の問題のほうが聞こえます – dkatzel