Pet*_*ryl 28 java testing junit junit4
我有一些像这样的测试:
@Test
public void test01()
{
Position p = getPositionAt('a', 1);
assertNotNull("a1 exists", p);
assertNotNull("figure exists a1", p.getFigure());
p = getPositionAt('a', 2);
assertNotNull("exists a2", p);
assertNull("figure exists a2", p.getFigure());
p = getPositionAt('b', 1);
assertNotNull("exists b1", p);
assertNull("figure exists b1", p.getFigure());
}
Run Code Online (Sandbox Code Playgroud)
运行测试时我需要的是将每个断言消息打印到stdout然后打断断言的结果.
这是测试类需要的格式:
a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed
Run Code Online (Sandbox Code Playgroud)
但是怎么做呢?我是JUnit的新工作者并不知道.是否有使用runners和suites?或者存在任何assertSuccess(),assertFailed()方法?谢谢你的任何提示.
Joh*_*n B 20
首先,你有两个问题,而不是一个.当断言失败时,AssertionError抛出异常.这可以防止检查超过此点的任何断言.要解决此问题,您需要使用ErrorCollector.
其次,我不相信JUnit有任何内置方法可以做到这一点.但是,您可以实现自己的方法来包装断言:
public static void assertNotNull(String description, Object object){
try{
Assert.assertNotNull(description, object);
System.out.println(description + " - passed");
}catch(AssertionError e){
System.out.println(description + " - failed");
throw e;
}
}
Run Code Online (Sandbox Code Playgroud)
Rom*_*ski 10
所有assertXXX方法都有一个允许在出错时显示String的表单:
assertNotNull("exists a2", p); // prints "exists a2" if p is null
在成功时打印消息没有特别的价值.
编辑
Junit通常提供2种形式的断言.要按照上面的示例,您可以使用以下两种方法之一测试空值:
assertNotNull(p)
要么
assertNotNull("my message on failure", p)
框架将打印错误消息,而无需您进行其他任何操作(由框架提供).
要测试异常,您将使用以下模式:
try{
someCall();
catch(Exception e){
fail(): // exception shouldn't happen, use assertTrue(true) if it should
}
Run Code Online (Sandbox Code Playgroud)
同样,这些方法的版本用于添加消息
检查API
| 归档时间: |
|
| 查看次数: |
69840 次 |
| 最近记录: |