UTgen工具
功能简介
UTgen是一款专为Maven和Gradle项目设计的Java单元测试自动生成工具,作为IntelliJ IDEA的插件,它能够为开发者提供端到端的测试用例生成支持,真正做到即插即用。具有以下关键特性:
- 支持通过右击方法名、类名、类文件、包目录生成测试用例。
- 测试用例包含输入、方法体、断言和注释。
- 在生成的过程中,保证最大的分支覆盖率和最小的测试数量。
- 支持指定生成测试用例的根目录和测试框架(JUnit 4、JUnit 5)。
- 支持两种用例渲染策略(保留和覆盖)。
- 支持Mock和设置测试生成超时时间。
- 支持JDK8、11、17的项目。
- 支持基于Spring Boot 2.x的Java项目。
操作步骤
UTgen工具支持通过Java包、文件、函数的形式生成UT测试用例。
- 在IntelliJ工具中展开项目文件夹,鼠标右击Java包或文件,选择“Generate Tests with UTgen”选项;或者打开文件,选择需要生成UT测试用例的函数,右击选择“生成”选项,在打开的选项中选择“Tests with UTgen”选项。图1 基于普通项目图2 基于SpringBoot项目
- 在打开的对话框中,设置自动生成UT参数,参数说明如表1所示。
表1 UT测试用例参数说明 参数
说明
测试根目录(Test sources root)
表示生成的UT测试用例代码文件存放的目录。
测试框架(Testing framework)
可选择基于某个测试框架生成UT。
- JUnit4
- JUnit5
相同函数的UT生成(UT generation for same function)
对同一函数增加UT时,会覆盖或者保留原有工具生成UT(带@UTgen注解)。
- Overwrite
- Retain
Mock策略(Mocking strategy)
表示是否要Mock内部对象,不Mock,或者工具自动选择是否Mock,或者Mock除目标类和系统类之外的所有内容。
- Do not mock
- Auto mock
- Mock outside the class
说明:- Mock static methods:模拟静态方法
- Parameterized tests:参数化测试
选择“Auto mock”或“Mock outside the class”可以勾选“Mock static methods”选项;选择“Do not mock”可以勾选“Parameterized tests”选项。
生成测试超时时间(Test generation timeout)
表示针对每个class生成UT的超时时间,默认为60s。
被测试对象(Generate tests for)
列举被测试函数或者类。
在列表中可勾选或不勾选当前Java包/文件中的需要被测试的函数或者类。
若为SpringBoot项目,会在原基础上新增如下三个参数,参数说明如表2所示。
- 参数配置完成后,单击“Generate Tests”生成UT测试用例,或者单击“Generate and Run”生成并运行UT测试用例,生成时右下角会有进度条显示。图3 生成用例图4 进度条显示
UT用例生成过程中,不能再进行UT测试用例生成的操作。
- UT测试用例生成后,右下角会有生成成功提示,同时会在项目文件夹指定的目录下(测试根目录参数所指定的目录)生成一个对应的UT目录,目录下生成的UT测试用例路径和项目文件夹下的路径一一对应。图5 成功提示图6 生成测试用例文件夹
父主题: 代码开发