我在这里看到了How to test abstract class in Java with jUnit?的答案,这些答案表示不测试子类的父类,而是测试每个具体的类。但是,每个子类的测试都是相同的(超出了使用/测试的子类)。除了将复制粘贴到新的测试类并替换正在测试的子类之外,测试所有这些的最有效/最优雅的方法是什么?我可以看到做一个循环,但是有更好的选择吗?
答案 0 :(得分:0)
使用Parameterized。例如,假设Foobar
& Barbar
都实现Baz
接口
@RunWith(Parameterized.class)
public class BazTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ new Foobar(),
new Barbar(), }
});
}
private Baz baz;
public BazTest(Baz baz) {
this.baz= baz;
}
@Test
public void test() {
// assert something about baz
}
}