详细信息
建议类型:抛出 NullPointerException
是否可在首选项配置:否
过滤器分类:异常/断言错误
说明
在测试运行期间抛出 NullPointerException 时,UTA 会显示此建议。根据您的代码,可以使用以下操作链接:
- 突出显示 - 在单元测试助手视图突出显示执行流中的问题。
- 转到 - 导航至抛出 NullPointerException 的代码。
- 空源 - 导航至 null 来源。
- 模拟它 - 模拟作为 null 来源的对象的值。
- 实例化它 - 创建作为 null 来源的对象的实例
- 生成丢失的桩 - 模拟在 mock 上调用的方法
- 使用 AI 修复 - 使用 AI 为失败的测试提供修复建议。此操作链接将打开一个对话框,显示 LLM 提供者的输出,并提供如何修复测试的建议。可以使用应用修复和关闭按钮。点击应用修复会打开一个差异编辑器,显示 AI 返回的更改建议。点击应用接受更改并更新测试,或者点击取消返回 LLM 输出对话框。您还可以在接受更改前进一步更改更新的测试源代码。要使用该功能,必须在许可证设置中启用“LLM Integration”许可证功能,同时启用并配置 LLM 提供者(请参阅配置 LLM 提供者设置)。
此功能依赖于 LLM,生成的信息可能不准确。
UTA 可以在一个源类中检测到 NullPointerException。
有关针对异常显示的更多选项,请参阅异常和断言错误。
示例
在下面的示例中,customer
为 null
:
在 customer 对象上调用 getName
方法时,抛出 NullPointerExceprion:
UTA 检测到 NullPointerException 并在建议视图中显示以下信息:
修复
您可以通过以下方式之一防止抛出 NullPointerException:
- 点击空源导航至 null 来源并手动修改代码。例如,您可以手动实例化
customer
对象,以确保对象值不为 null。 - 点击实例化它来自动实例化对象。测试将会更新,包含创建
customer
对象实例所需的代码。您可能需要手动替换 UTA 生成的默认值。
- 点击模拟它来自动模拟对象值。测试将会更新,包含创建模拟所需的代码。
然后重新运行测试。UTA 将显示已抛出 NullPointerException 的信息,因为在模拟对象上调用了getName
方法。
点击生成丢失的桩对在模拟的customer
对象上调用的getName
方法进行模拟。
测试将会更新,包含对getName
方法打桩所需的代码。 - 点击标记为预期异常,将
@Test(expected=NullPointerException.class)
注解添加到测试代码中。这将避免 UTA 在后续测试运行中显示此建议。