Java Javolution测试模式,dos和don';ts
当一个人在为测试编写测试时,有什么样的模式以及应该做什么和不应该做什么?我特别想知道:Java Javolution测试模式,dos和don';ts,java,unit-testing,Java,Unit Testing,当一个人在为测试编写测试时,有什么样的模式以及应该做什么和不应该做什么?我特别想知道: execute()不允许抛出异常。如何应对?以RuntimeException或存储在变量中并在TestCase.validate()中断言,还是什么 是否有任何图形化的运行程序向您显示失败的测试,例如在Eclipse中?也许有人编写了一个JUnit包装器,这样我就可以使用EclipseJUnitRunner了 javadoc和javolution源代码给出了一些示例和设计原理。 另见 Javolution
- execute()不允许抛出异常。如何应对?以RuntimeException或存储在变量中并在TestCase.validate()中断言,还是什么
- 是否有任何图形化的运行程序向您显示失败的测试,例如在Eclipse中?也许有人编写了一个JUnit包装器,这样我就可以使用EclipseJUnitRunner了
如果validate来自与exercise不同的类,那么调试失败可能会比较困难。您可以通过使用下面的JUnit适配器并在eclipse中运行它来获得某种图形化的testrunner。您可以单独启动/调试失败的测试。不幸的是,图形表示不包括任何关于实际测试的内容——它只显示数字[0]、[1]等等 @RunWith(参数化的.class) 公共类JavolutionJUnit4Adapter{
protected final javolution.testing.TestCase test;
public JavolutionJUnit4Adapter(javolution.testing.TestCase testcase) {
this.test = testcase;
}
@org.junit.Test
public void executeTest() throws Exception {
enter(REGRESSION);
try {
new javolution.testing.TestSuite() {
@Override
public void run() {
test(test);
}
}.run();
} finally {
exit();
}
}
@Parameters
public static Collection<javolution.testing.TestCase[]> data() {
javolution.testing.TestSuite fp = new WhateverSuiteYouWantToRun();
List<javolution.testing.TestCase> tests = fp.getTestCases();
Collection<javolution.testing.TestCase[]> res = new ArrayList<javolution.testing.TestCase[]>();
for (javolution.testing.TestCase t : tests) {
res.add(new javolution.testing.TestCase[] { t });
}
return res;
}
受保护的最终javolution.testing.TestCase测试;
公共JavolutionJUnit4Adapter(javolution.testing.TestCase测试用例){
this.test=testcase;
}
@org.junit.Test
public void executeTest()引发异常{
进入(回归);
试一试{
新的javolution.testing.TestSuite(){
@凌驾
公开募捐{
试验(试验);
}
}.run();
}最后{
退出();
}
}
@参数
公共静态收集数据(){
javolution.testing.TestSuite fp=新的WhateVersuiteYouwantRun();
列表测试=fp.getTestCases();
Collection res=new ArrayList();
for(javolution.testing.TestCase t:tests){
res.add(newjavolution.testing.TestCase[]{t});
}
返回res;
}
}