72、单元测试-常用测试注解
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配置文件或命令行参数中获取测试参数。
通过合理使用这些注解,可以有效地组织和管理单元测试代码,提高测试的效率和可靠性。