您可以通过选择单元测试助手视图或 IDE 上下文菜单中的创建测试套件选项轻松创建测试套件。当您选择创建测试套件选项时,UTA 将会:
要使用此功能:
此功能依赖于 LLM,生成的信息可能不准确。 |
使用跟踪和做出断言功能添加断言,运行创建的测试(详细信息,请参阅跟踪对象变更和创建断言)。 如果您使用的是 Eclipse IDE,必须启用 Build Automatically 选项(Project 菜单> Build Automatically)才能添加断言。如果禁用该选项,在测试运行期间不会添加任何断言。
要自定义 UTA 创建的测试用例,可查看测试代码中的值和断言,并根据需要进行更新。此外,还可以使用运行选项重新运行测试以使用 UTA 建议优化测试用例(请参阅使用单元测试助手执行单元测试)。
UTA 需要 2GB RAM 才能进行批量创建。如果需要为大型代码库创建多个测试用例,我们建议将 IDE 配置为使用 4GB RAM。 |
我们建议您禁用 IntelliJ 设置中的 Synchronize files on frame or editor tab activation 选项。如果启用,UTA 可能偶尔会中止然后重新开始测试创建过程,这可能导致无法生成某个测试,或生成不完整的测试。禁用该选项的步骤:
|
如果启用了 UTA 首选项中的 为 private 方法创建测试选项,UTA 会为所选类中的私有方法创建测试(请参阅配置首选项)。默认情况下,为 private 方法创建测试选项被禁用,因为行业最佳实践是通过为调用私有方法的可访问方法创建测试来测试私有方法,而不是直接为私有方法创建测试。 |
可以通过配置 UTA 首选项中的配置测试的超时 (单位: ms) 选项指定测试套件的执行时间限制(请参阅测试创建选项)。 |
通过以下方法之一打开单元测试助手 - 创建测试套件对话框:
在编辑器中选择一个类,然后点击单元测试助手视图中的创建测试套件操作链接:
右键点击 Project Explorer 中的文件,然后在上下文菜单中选择 单元测试> 创建测试套件:
配置测试创建选项。
优化测试套件用于:- 您可以指定为所选方法创建测试的优先级。
- 最大代码覆盖率 - UTA 将根据需要创建尽可能多的测试,以覆盖尽可能多的方法执行路径。启用此选项有助于实现最高的覆盖率,但测试用例的复杂性和潜在重叠有可能会带来维护问题。
- 测试套件可维护性 - UTA 创建的测试更少,只覆盖主要的执行路径。启用此选项有助于创建更简单且更容易维护的测试,但覆盖率会更低。
模拟初始化 - 您可以指定模拟的初始化方式。
- 在测试方法中配置 - 通过在测试方法中声明和初始化被测对象及其依赖项来初始化模拟。
- 使用 @InjectMocks - 通过使用 @InjectMocks 注解标记需要执行模拟注入的字段并使用 @Mock 注解标记其依赖项来初始化模拟。详细信息,请参阅配置模拟初始化。
创建测试用例用于: - 您可以指定要为其创建测试用例的方法。您可以使用选择全部、取消全部选择或选择修改的 (*) 按钮来更改列表中的选择。选择修改的 (*) 按钮仅选择在源码控制中已修改的方法(用星号表示)。
注意:Eclipse 和 IntelliJ 必须要将项目识别为 Git 项目,此修改方法功能才能生效
UTA 可以一次性为多个文件创建测试用例。您可以为指定的一组文件中所有方法创建测试,也可以根据您选择的比较标准仅为一组文件中已修改的方法创建测试。
您可以在 UTA 首选项中选择此选项,仅添加能够增加覆盖率的测试用例(请参阅测试创建选项)。 |
点击单元测试> 创建测试套件打开单元测试助手 - 创建测试套件对话框。
模拟初始化 - 您可以指定模拟的初始化方式。
- 在测试方法中配置 - 通过在测试方法中声明和初始化被测对象及其依赖项来初始化模拟。
- 使用 @InjectMocks - 通过使用 @InjectMocks 注解标记需要执行模拟注入的字段并使用 @Mock 注解标记其依赖项来初始化模拟。详细信息,请参阅配置模拟初始化。
- 提交或分支 - 您可以指定用于相较于和自当前分支分叉于设置的提交、分支、或标签。提交或分支下拉菜单保存了输入历史。它包含两个用于相较于设置的预设值:
注意:
不支持 Git reflog 引用。
考虑以下关于使用本地修改的方法和提交或分支设置的建议:
如果您只有本地修改,并且希望在提交前为受影响的代码生成测试,我们建议使用“相较于”和“本地分支上的最新提交”设置。
如果您有尚未推送的本地提交,并且希望为这些提交生成测试,包括当前任何本地更改,我们建议使用“相较于”和“远程分支上的最新提交”设置。
如果您已将提交推送到某个分支,例如功能或开发分支,并且现在功能或修复已完成,您希望为该分支中所做的所有更改生成测试,我们建议使用“自当前分支分叉于”并指定当前分支的父分支。例如,如果您使用的是从 master 分支分叉的“feature/foo”功能分支,则可以指定“master”。
为修改后的方法(与本地或远程分支比较)创建测试需要“Unit Test Single Class Creation”许可证功能,在该情况下不会消耗许可证令牌。为全部选择、与指定的提交或分支比较存在修改的方法、自当前分支分叉于指定提交或分支创建测试,需要“Unit Test Bulk Creation Tier”许可证功能之一。这些功能提供了许可证令牌,根据为其生成测试用例的文件数量进行消耗(可用令牌数量视您的许可协议而定)。在这类情况下,UTA 针对每个为其创建测试的 .java 文件消耗一个令牌。
|
如果批量创建的结果不符合期望,这可能表明项目中存在设置问题。更多信息,请参阅如何诊断潜在设置问题?。 |