我有一个使用(excpected = NumberFormatException.class)
的方法
方法:
@Test(expected=NumberFormatException.class)
public void testAssignCasesWithInvalidMemberId() throws IOException {
when(info.getUID()).thenReturn(invalidId);
when(request.getParameter("ac")).thenReturn(validCIds);
custObj.assignNums();
}
我得到以下作为执行该方法的结果:
Expected exception: java.lang.NumberFormatException
junit.framework.AssertionFailedError: Expected exception: java.lang.NumberFormatException
at org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:32)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.mockito.internal.runners.JUnit45AndHigherRunnerImpl.run(JUnit45AndHigherRunnerImpl.java:37)
at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:62)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:532)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1179)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1030)
在assignNums()
方法中,invlidId被转换为Long,并抛出异常。
我的问题是理解结果文本。
测试与Expected xyz exceptiong, but this test method blah blah
相同代码的NG输出。提供足够的信息,说明它所期望的和实际的。
但在JUnit的情况下,除了预期xyz异常之外,它不说任何其他内容。TestNG说,它是否得到了其他异常,或者根本没有得到异常。
否,在这种情况下,JUnit不会具体告诉您抛出了什么(如果有任何抛出)。它只是报告您期望抛出一个异常,而该异常没有被抛出。所以,测试失败了。同意多一点信息会有所帮助。