1:ITestResult的功能
ITestResult是TestNG提供的一個接口 結合@AfterMethod使用類似監聽器 可以監聽@Test方法的執行狀态等資訊。
2:ITestResult的用法
2.1:不用ITestResult的結果是這樣的
package TestNGEXT;
import static org.testng.Assert.assertEquals;
import org.junit.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class Demo_TestNG {
//Demo1會運作失敗
@Test
public void Demo1(){
System.out.println("This is Demo1 Method");
// Assert.assertFalse(false);
assertEquals(false, true);
}
//Demo2會運作成功
@Test
public void Demo2(){
System.out.println("This is Demo1 Method");
assertEquals(true, true);
}
// @AfterMethod
// public void ITestResult_Demo(ITestResult result){
//
// System.out.println(result.getName());
//
// }
}
運作結果
2.2:使用ITestResult監聽運作結果的狀态
package TestNGEXT;
import static org.testng.Assert.assertEquals;
import org.junit.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class Demo_TestNG {
//Demo1會運作失敗
@Test
public void Demo1(){
System.out.println("This is Demo1 Method");
// Assert.assertFalse(false);
assertEquals(false, true);
}
//Demo2會運作成功
@Test
public void Demo2(){
System.out.println("This is Demo1 Method");
assertEquals(true, true);
}
@AfterMethod
public void ITestResult_Demo(ITestResult result){
System.out.println("正在運作的方法是:"+result.getName());
}
}
運作結果
2.3:ITestResult方法概述
通過2.1和2.2我們可以看到 ITestResult方法可以對@Test方法進行監聽
3:ITestResult的擴充使用
3.1:ITestResult接口有很多實作方法 友善監聽@Test方法
ITestResult接口有很多實作方法 友善監聽@Test方法
3.2:對@Test方法進行後處理(分狀态進行處理)
例如:@Test方法運作成功/失敗後不同的操作
@AfterMethod
public void ITestResult_Demo(ITestResult result){
//如果失敗或者成功 對@Test方法進行操作處理
if(result.getStatus() == ITestResult.FAILURE){
System.out.println("正在運作的方法是失敗的方法:"+result.getName());
}
}
ITestResult接口封裝了它的狀态碼可以直接調用