rom*_*afe 3 java junit unit-testing annotations junit4
我想要一个JUnit 4测试类来实现与其测试类相同的接口.这样,随着接口的改变(我们正在进行早期开发),编译器保证将相应的方法添加到测试类中.例如:
public interface Service {
public String getFoo();
public String getBar();
}
public class ServiceImpl implements Service {
@Override public String getFoo() { return "FOO"; }
@Override public String getBar() { return "BAR"; }
}
public class ServiceTest implements Service {
@Override
@Test
public String getFoo() {
//test stuff
}
@Override
@Test
public String getBar() {
//test stuff
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我得到一个错误:"java.lang.Exception:Method getFoo()应该是void",大概是因为测试方法必须返回void.任何人都知道这方面的任何方式?
我不得不承认,这是一个巧妙的技巧,虽然它不能很好地扩展到多个测试场景.
无论如何,你可以使用自定义跑步者.例如:
@RunWith(CustomRunner.class)
public class AppTest {
@Test
public int testApp() {
return 0;
}
}
public class CustomRunner extends JUnit4ClassRunner {
public CustomRunner(Class<?> klass) throws InitializationError {
super(klass);
}
protected void validate() throws InitializationError {
// ignore
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3336 次 |
| 最近记录: |