UTgen工具

功能简介

UTgen是一款专为Maven和Gradle项目设计的Java单元测试自动生成工具,作为IntelliJ IDEA的插件,它能够为开发者提供端到端的测试用例生成支持,真正做到即插即用。具有以下关键特性:

操作步骤

UTgen工具支持通过Java包、文件、函数的形式生成UT测试用例。

  1. 在IntelliJ工具中展开项目文件夹,鼠标右击Java包或文件,选择“Generate Tests with UTgen”选项;或者打开文件,选择需要生成UT测试用例的函数,右击选择“生成”选项,在打开的选项中选择“Tests with UTgen”选项。

    图1 基于普通项目
    图2 基于SpringBoot项目

  2. 在打开的对话框中,设置自动生成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所示。

    表2 UT测试用例参数说明

    参数

    说明

    Spring配置(Spring configuration)

    进行Spring配置,可选择不配置,或选择Spring配置类。

    • No configuration:将SpringBoot项目不做特殊处理。
    • @Configuration:Spring配置类,分析该注解所在类中的Bean定义,用于确定生成测试用例时的类型约束,即生成的测试用例使用该Bean的类型。具体使用示例请参见SpringBoot项目示例
    • @SpringBootApplication:Spring配置类,分析SpringBoot项目中所有注入的Bean定义,用于确定生成测试用例时的类型约束,即生成的测试用例使用该Bean的类型。

    测试类型(Test type)

    设置测试类型,只提供Unit tests测试类型。

    激活状态的Profile名称(Active profiles)

    Profile是一种用于根据不同环境或条件来配置和激活不同Bean定义、配置属性等的机制。与Spring配置类一起分析注入的Bean定义,用于确定生成测试用例时的类型约束,即生成的测试用例使用该Bean的类型。

  3. 参数配置完成后,单击“Generate Tests”生成UT测试用例,或者单击“Generate and Run”生成并运行UT测试用例,生成时右下角会有进度条显示。

    图3 生成用例
    图4 进度条显示

    UT用例生成过程中,不能再进行UT测试用例生成的操作。

  4. UT测试用例生成后,右下角会有生成成功提示,同时会在项目文件夹指定的目录下(测试根目录参数所指定的目录)生成一个对应的UT目录,目录下生成的UT测试用例路径和项目文件夹下的路径一一对应。

    图5 成功提示
    图6 生成测试用例文件夹