版本:testng-6.8.8.jar
此测试运行为绿色:
@Test(expectedExceptions = { NullPointerException.class })
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() throws Exception {
String iAmNull = null;
int length = iAmNull.length();
assertEquals(0, 1);
}
任何配置文件或其他选项
在异常发生后继续并评估断言?
答案 0 :(得分:2)
你必须改写你的测试。 例如:
@Test
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() {
String iAmNull = null;
boolean hasNpe = false;
try {
int length = iAmNull.length();
} catch(NullPointerException npe) {
hasNpe = true;
}
assertTrue(hasNpe);
assertEquals(0, 1);
}
答案 1 :(得分:2)
它与TestNG无关。这是关于Java如何工作(并且应该工作)。对null(<nullObject>.someMethod()
)的任何方法调用都会导致抛出NullPointerException。如果你没有在你的方法中捕获它,它会在调用堆栈中传播。如果它没有在任何地方处理,则执行以堆栈跟踪结束。