如何获得要打印到[标准输出]的JUnit断言的结果?
我有一些像这样的测试:
@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()); }
这是我希望获得的打印输出格式:
a1 exists -success figure exists a1 -success exists a2 -success figure exists a2 -succcess exists b1 -succcess figure exists b1 -failed
是否可以使用runners和进行此操作suites?或是否存在任何assertSuccess(),assertFailed()方法?
runners
suites
assertSuccess()
assertFailed()
首先,您有两个问题,而不是一个。断言失败时,将AssertionError引发异常。这样可以防止检查超过此点的任何断言。为了解决这个问题,您需要使用ErrorCollector。
AssertionError
其次,我不认为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; } }