例如,我有一些基于Set<Integer>
的测试。我希望使用TreeSet
然后使用HashSet
运行它们。我可以在没有手动初始化测试方法体内的情况下完成吗
这样的事情:
public class SomeTest {
Set<Integer> set;
@Before
public void init() {
set = new HashSet<>();
}
// @Before
// public void init2() {
// set = new TreeSet<>();
// }
//test...
}
我想首先使用init()
然后使用init2()
运行所有测试。我该怎么办?
答案 0 :(得分:2)
更清洁的方法是:
public abstract class SomeTestsForSets {
Set<Integer> set;
@Before
public abstract void init();
//test cases...
}
public class HashSetTests extends SomeTestsForSets {
@Override
public void init() {
this.set = new HashSet<>();
}
}
public class TreeSetTests extends SomeTestsForSets {
@Override
public void init() {
this.set = new TreeSet<>();
}
}