使用TestNG進行單元測試

TestNG簡介

TestNG是一個用來簡化廣泛測試需求的測試框架,可用於單元測試和集成測試。

Annotation

Annotation 作用
@BeforeSuite 被註釋的方法將在所有測試運行前運行
@AfterSuite 被註釋的方法將在所有測試運行後運行
@BeforeTest 被註釋的方法將在測試運行前運行
@AfterTest 被註釋的方法將在測試運行後運行
@BeforeGroups 被註釋的方法將在gourp中方法運行前運行
@AfterGroups 被註釋的方法將在gourp中方法運行後運行
@BeforeClass 被註釋的方法將在當前類的第一個方法運行前運行
@AfterClass 被註釋的方法將在當前類的所有方法運行後運行
@BeforeMethod 被註釋的方法將在每一個方法運行前運行
@AfterMethod 被註釋的方法將在每一個方法運行後運行
@DataProvider 被註釋的方法用於爲其他方法提供數據
@Factory 被標記的方法作爲一個返回對象的工廠,這些對象將被TestNG作爲測試類,該返回必須返回Object[]
@Par##ameters 傳遞參數給測試方法

範例:

@Test()  // Test中所有方法變爲測試方法
public class Test {

	@Test(enable = false)  // 該註釋後,test1()測試時被忽略,相當於普通方法
	public void test1(){}
    
    @BeforeTest()          // 該註釋後,test3(),test4()執行前,test2()先執行
	public void test2(){}
	
	public void test3(){}

	public void test4(){}
}

測試中的一些小問題

1、匿名JSON節點驗證:

[
	{
		"name":"Tom",
		"age":12
	},
	{
		"name":"Jane",
		"age":18
	}
]

對於上述JSON的驗證代碼如下:

public void method_name() {
    given().
            header("Authorization", "token " + Config.getToken()).
    when().
            get(url).
    then().
            statusCode(200).
            body("[0].name", equalTo("正常")).
            body("[0].age", greaterThanOrEqualTo(0));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章