Şu anda çeşitli jenerik @Test
'leri içeren bir BaseTest
sınıfına sahibim.Parametreli çok katmanlı paketler
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
Çeşitli test durumları tanımlayan BaseTest
uzanmaktadır.
@RunWith(Parallelized.class)
public class SomeTest extends BaseTest {
// @Parameters (test cases) goes here...
}
ben sonra RunAllTests
bir Suite
koymak BaseTest
uzanan birçok test var.
@RunWith(Suite.class)
@SuiteClasses({ SomeTest.class, AnotherTest.class, etc... })
public class RunAllTests { }
Yani ancak farklı bir sınıfa bunları içeren istiyorum ı daha @Test
's eklemek istediğiniz diyelim.
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...
}
O RunAllTests
her sınıf için, ben BaseTest
VEWhitespaceTest
çalıştırmak böylece, her tek testi çalıştırmak için Suites
başka "katmanı" ihtiyaç belirir. Bu katmanı uygulamak için nasıl giderim?
BaseTest
içinde::
Anlamıyorum. Neden şimdiki paketinize "WhitespaceTest" ekleyemiyorsunuz? Ayrıca, elbette birden fazla suitiniz var – dkatzel
Mevcut testteki her bir "BaseTest" için her testi "WhitespaceTest" içinde çalıştırmak istiyorum. –
Bir suite probleminden çok daha fazla bir miras sorunu gibi daha çok – dkatzel