72、單元測試-常用測試注解
在單元測試中,常用的測試注解可以幫助組織和管理測試代碼,提高測試的可讀性和可維護性。以下是JUnit和TestNG框架中一些常用的測試注解及其功能:
#### JUnit注解
1. **`@Test`**
? ?- 標記一個方法為測試方法。
? ?- 可以設置`expected`參數來指定期望拋出的異常類型。
? ?- 可以設置`timeout`參數來指定測試方法的超時時間。
2. **`@Before`**
? ?- 標記的方法在每個測試方法執行前運行。
? ?- 通常用于初始化測試環境。
3. **`@After`**
? ?- 標記的方法在每個測試方法執行后運行。
? ?- 通常用于清理測試環境。
4. **`@BeforeClass`**
? ?- 標記的靜態方法在所有測試方法執行前運行一次。
? ?- 通常用于初始化昂貴的資源或進行全局設置。
5. **`@AfterClass`**
? ?- 標記的靜態方法在所有測試方法執行后運行一次。
? ?- 通常用于釋放資源或進行全局清理。
6. **`@Ignore`**
? ?- 標記的測試方法或測試類將被忽略,不執行。
? ?- 通常用于暫時禁用某些測試。
7. **`@RunWith`**
? ?- 指定測試運行器,可以自定義測試執行方式。
? ?- 例如,使用`@RunWith(SpringJUnit4ClassRunner.class)`來集成Spring測試環境。
8. **`@ParameterizedTest`**
? ?- 用于參數化測試,允許測試方法接收不同的參數值。
? ?- 需要配合`@ValueSource`、`@CsvSource`等注解提供參數數據。
9. **`@DisplayName`**
? ?- 為測試方法或測試類設置自定義名稱,在測試報告中顯示更友好的描述信息。
#### TestNG注解
1. **`@Test`**
? ?- 與JUnit的`@Test`類似,標記一個方法為測試方法。
? ?- 可以設置`enabled`參數來控制測試方法是否執行。
? ?- 可以設置`priority`參數來指定測試方法的執行順序。
2. **`@BeforeMethod`**
? ?- 標記的方法在每個測試方法執行前運行。
3. **`@AfterMethod`**
? ?- 標記的方法在每個測試方法執行后運行。
4. **`@BeforeClass`**
? ?- 與JUnit的`@BeforeClass`類似,在所有測試方法執行前運行一次。
5. **`@AfterClass`**
? ?- 與JUnit的`@AfterClass`類似,在所有測試方法執行后運行一次。
6. **`@BeforeSuite`**
? ?- 標記的方法在整個測試套件執行前運行。
7. **`@AfterSuite`**
? ?- 標記的方法在整個測試套件執行后運行。
8. **`@DataProvider`**
? ?- 用于為測試方法提供參數數據。
? ?- 標記的方法返回一個二維數組或集合,每個元素對應一組參數。
9. **`@Factory`**
? ?- 用于創建測試對象的工廠方法。
? ?- 標記的方法返回一個對象數組,每個對象對應一個測試實例。
10. **`@Listeners`**
? ? - 指定測試監聽器,用于監聽測試執行過程中的事件,如測試開始、結束、失敗等。
11. **`@Parameters`**
? ? - 從XML配置文件或命令行參數中獲取測試參數。
通過合理使用這些注解,可以有效地組織和管理單元測試代碼,提高測試的效率和可靠性。