在异常发生后评估断言?
Evaluate asserts after exception has taken place?
版本:testng-6.8.8.jar
此测试运行绿色:
@Test(expectedExceptions = { NullPointerException.class })
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() throws Exception {
String iAmNull = null;
int length = iAmNull.length();
assertEquals(0, 1);
}
任何配置文件或其他选项
在异常发生后继续并评估断言?
您必须重写您的测试。
例如:
@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);
}
与TestNG无关。这是关于 Java 如何工作(并且应该工作)的。对 null ( <nullObject>.someMethod()
) 的任何方法调用都会导致抛出 NullPointerException。如果您没有在您的方法中捕获它,它就会向上传播到调用堆栈。如果未在任何地方处理,执行将以堆栈跟踪结束。
版本:testng-6.8.8.jar
此测试运行绿色:
@Test(expectedExceptions = { NullPointerException.class })
public void shouldTestNGIgnoreAssertsAfterExceptionThrown() throws Exception {
String iAmNull = null;
int length = iAmNull.length();
assertEquals(0, 1);
}
任何配置文件或其他选项
在异常发生后继续并评估断言?
您必须重写您的测试。 例如:
@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);
}
与TestNG无关。这是关于 Java 如何工作(并且应该工作)的。对 null ( <nullObject>.someMethod()
) 的任何方法调用都会导致抛出 NullPointerException。如果您没有在您的方法中捕获它,它就会向上传播到调用堆栈。如果未在任何地方处理,执行将以堆栈跟踪结束。