我写了一个接口MyInterface
,它将由不同的实现者实现。
我还编写了一个类MyInterfaceTest
,其中包含所有实现者应该能够用来测试其实现的通用测试方法。
我只是不知道如何使它作为 JUnit 测试工作。
目前,我有这样的事情:
public class MyInterfaceTest {
private static MyInterface theImplementationToTest = null;
@BeforeClass public static void setUpBeforeClass() throws Exception {
// put your implementation here:
theImplementationToTest = new Implementation(...);
}
@AfterClass public static void tearDownAfterClass() throws Exception {
theImplementationToTest = null;
}
@Test public void test1() { /* uses theImplementationToTest */ }
@Test public void test2() { /* uses theImplementationToTest */ }
}
我使用静态方法setUpBeforeClass
是因为每个实现的初始化都需要很多时间,所以我想为所有测试初始化一次。
使用这个版本的测试,实现者必须更改代码setUpBeforeClass
并放置他们自己的实现。
我确信还有另一种编写方式MyInterfaceTest
,这样实现者只需继承它或向它发送一个参数,而无需更改代码。但是,我在 JUnit 方面的经验不足,无法使其正常工作。你能告诉我怎么做吗?