在JUnit 3中用於指示測試方法的傳統方式是將其名稱加上字首。 這是一個非常有效的方法,用於將類中的某些方法標記為具有特殊意義,但是命名不能很好地擴充套件(如果我們要為不同的框架新增更多的標籤呢?)而且非常不靈活的(如果想傳遞額外的引數到測試框架呢怎麼辦?)。
註解從JDK 5開始正式新增到Java語言中,TestNG選擇使用註解來註釋測試類。
以下是TestNG支援的注釋列表:
註解 | 描述 |
---|---|
@BeforeSuite |
在該套件的所有測試都執行在注釋的方法之前,僅執行一次。 |
@AfterSuite |
在該套件的所有測試都執行在注釋方法之後,僅執行一次。 |
@BeforeClass |
在呼叫當前類的第一個測試方法之前執行,注釋方法僅執行一次。 |
@AfterClass |
在呼叫當前類的第一個測試方法之後執行,注釋方法僅執行一次 |
@BeforeTest |
注釋的方法將在屬於<test> 標籤內的類的所有測試方法執行之前執行。 |
@AfterTest |
注釋的方法將在屬於<test> 標籤內的類的所有測試方法執行之後執行。 |
@BeforeGroups |
組態方法將在之前執行組列表。 此方法保證在呼叫屬於這些組中的任何一個的第一個測試方法之前不久執行。 |
@AfterGroups |
此組態方法將在之後執行組列表。該方法保證在呼叫屬於任何這些組的最後一個測試方法之後不久執行。 |
@BeforeMethod |
注釋方法將在每個測試方法之前執行。 |
@AfterMethod |
注釋方法將在每個測試方法之後執行。 |
@DataProvider |
標記一種方法來提供測試方法的資料。 注釋方法必須返回一個Object [] [] ,其中每個Object [] 可以被分配給測試方法的引數列表。 要從該DataProvider 接收資料的@Test 方法需要使用與此註釋名稱相等的dataProvider 名稱。 |
@Factory |
將一個方法標記為工廠,返回TestNG 將被用作測試類的物件。 該方法必須返回Object [] 。 |
@Listeners |
定義測試類上的偵聽器。 |
@Parameters |
描述如何將引數傳遞給@Test 方法。 |
@Test |
將類或方法標記為測試的一部分。 |
以下是使用注釋/註解的一些好處:
TestNG通過查詢註釋/註解來識別它感興趣的方法。 因此,方法名稱不限於任何模式或格式。
可以將其他引數傳遞給注釋。
注釋是強型別的,所以編譯器會馬上標記任何錯誤。
測試類不再需要擴充套件任何東西(如TestCase,對於JUnit3)。