详细信息
建议类型:异常和断言错误
是否可在首选项配置:否
过滤器分类:异常/断言错误
说明
UTA 会在以下情况显示此建议:
- 测试在执行过程中失败。
- 抛出意外异常。
- 未能抛出期望的异常。
- 抛出的异常与期望的异常不同。
根据您的代码,可以使用以下操作链接:
- 突出显示 - 在单元测试助手视图突出显示执行流中的问题。
- 转到 - 在编辑器突出显示与建议关联的代码(例如,抛出异常的代码)。
- 标记为预期异常 - 将报告的异常标记为预期异常,从而防止 UTA 在后续测试运行期间显示此建议。
- 在 JUnit 4 测试中,会使用@Test(expected=...)
注解标记测试(请参阅 JUnit 4 测试示例)。
- 在 JUnit 5 测试中,会将异常包装到assertThrows()
方法中(请参阅 JUnit 5 测试示例)。 - 删除预期异常 - 从测试代码中删除
@Test(expected=...)
注解或assertThrows()
方法;此选项在测试运行期间未能抛出预期的异常时可用。 - 使用 AI 修复 - 使用 AI 为失败的测试提供修复建议。此操作链接将打开一个对话框,显示 LLM 提供者的输出,并提供如何修复测试的建议。可以使用应用修复和关闭按钮。点击应用修复会打开一个差异编辑器,显示 AI 返回的更改建议。点击应用接受更改并更新测试,或者点击取消返回 LLM 输出对话框。您还可以在接受更改前进一步更改更新的测试源代码。要使用该功能,必须在许可证设置中启用“LLM Integration”许可证功能,同时启用并配置 LLM 提供者(请参阅配置 LLM 提供者设置)。
此功能依赖于 LLM,生成的信息可能不准确。
对于使用
@Rule
ExpectedException
处理异常的测试,UTA 不会显示标记为预期异常和删除预期异常选项。
JUnit 4 测试示例
示例 1 - 抛出异常
已为 makePayment
方法创建以下测试:
UTA 检测到抛出的异常:
点击标记为预期异常使用抛出的异常更新 @Test(expected=...)
注解:
示例 2 - 未抛出期望的异常
在下面的示例中,IllegalArgumentException
是预期异常:
UTA 检测到未抛出异常:
点击删除预期异常从测试中删除 Test(expected =
IllegalArgumentException
.class)
注解:
示例 3 - 错误的抛出异常
在下面的示例中,IllegalArgumentException
是预期异常:
UTA 检测到实际抛出的异常为 Error
:
点击标记为预期异常使用抛出的异常更新 @Test(expected=...)
注解:
示例 5 - 使用 AI 修复
已为 makePayment
方法创建以下测试:
UTA 检测到抛出的异常:
点击使用 AI 修复。对话框显示 LLM 提供者的输出,并提供如何修复测试的建议:
点击应用修复。将打开代码的差异视图,用户可以根据需要在测试类中添加代码前编辑代码:
点击应用。
JUnit 5 测试示例
已为 makePayment
方法创建以下测试:
UTA 检测到抛出的异常:
点击标记为预期异常使用 assertThrows
方法包装抛出的异常: