当前位置: 首页 > news >正文

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配置文件或命令行参数中获取测试参数。

通过合理使用这些注解,可以有效地组织和管理单元测试代码,提高测试的效率和可靠性。

http://www.lryc.cn/news/573874.html

相关文章:

  • vue3 el-table 行字体颜色 根据字段改变
  • 在 Windows 和 Linux 下使用 C/C++ 连接 MySQL 的详细指南
  • SQL 中 HAVING COUNT (1)>1 与 HAVING COUNT (*)>1 的深度解析
  • Spring Boot Actuator 跟踪HTTP请求和响应
  • 开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化
  • Python 的内置函数 help
  • python 常见数学公式函数使用详解
  • oracle rac - starwind san 磁盘共享篇
  • 【闲谈】对于c++未来的看法
  • Java面试复习:面向对象编程、JVM原理与Java 8新特性
  • Flink源码阅读环境准备全攻略:搭建高效探索的基石
  • Go语言--语法基础6--基本数据类型--数组类型(1)
  • 114. 二叉树展开为链表
  • C++插值记录
  • 开发云数据库
  • Python环境搭建竞赛
  • python的高校教师资源管理系统
  • 【Guava】0.做自己的编程语言
  • 删除node并且重装然后重装vue
  • 深度学习:PyTorch人工神经网络优化方法分享(2)
  • 【redis使用场景——缓存——双写一致性】
  • 文心一言(ERNIE Bot):百度打造的知识增强大语言模型
  • 一键打包利器:gopack - 极简Go程序编译与压缩工具
  • Ollama按照与使用
  • openapi-generator-maven-plugin自动生成HTTP远程调用客户端
  • Java面试复习指南:基础、面向对象、Java 8新特性及并发编程
  • ASP.NET Core API文档与测试实战指南
  • 编程江湖-Git
  • 分库分表下的 ID 冲突问题与雪花算法讲解
  • 【数据结构】_二叉树部分特征统计