详细信息

建议类型:异常和断言错误

是否可在首选项配置:否

过滤器分类:异常/断言错误

说明

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,生成的信息可能不准确。

(info) 对于使用 @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 方法包装抛出的异常:


  • No labels