如何在TestNG中处理expectedExceptions,这样无论测试方法中的代码是否抛出异常,测试都是通过的我有创建某些对象列表的 testng 测试方法。在每个对象的 for 循环中,都会执行特定的操作。此操作可能会或可能不会引发异常。如何使用@Test(expectedExceptions) 使得无论是否抛出异常,整体测试结果都是通过。根据我的理解,expectedExceptions 总是会寻找异常。如果发现异常,则由 Testng 处理,测试结果通过。如果未找到异常或抛出不同的异常,则测试失败public class DemoException {@Test(expectedExceptions = {ConnectException.class})public void testException() throws ConnectException { //pseudo code...... //create a List<WebElement> myList int count = 0; for(WebElemet we: myList){ we.connect(); //this may or may not throw exception we.getResponseMessage(); // further actions on we is needed we.disconnect(); //above 3 are HttpURLConnection methods to be precise // Basically do - connect, getResponse, disconnect System.out.println(count++); // print count is needed - exception thrown or not thrown } }}预期:无论是否抛出异常,测试方法都应该通过。即使抛出异常也应该打印计数值实际结果:测试方法通过(抛出异常)但不打印计数值。如果添加了任何 try-catch 逻辑,则打印计数值但测试方法失败。这不是我想要的。
3 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
你为什么不试试这个:
@Test(expectedExceptions = Exception.class)
public void MyTest() throws Exception {
int count = 0;
try {
for (int i = 0; i < 10; i++) {
throw new Exception("Fake Exception");
}
}
catch (Exception ex)
{
System.out.println(count++);
throw ex;
}
}
将计数打印到日志/控制台,然后再次抛出异常。
守着星空守着你
TA贡献1799条经验 获得超8个赞
尝试 SoftAssert。即使测试失败,它也会继续https://static.javadoc.io/org.testng/testng/6.13/org/testng/asserts/SoftAssert.html
添加回答
举报
0/150
提交
取消