使用 SAP Joule 生成 ABAP 单元测试
学习目标
概述 ADT 中集成的基于 AI 的 ABAP 单元功能。
使用 SAP Joule 生成 ABAP 单元测试。
ADT 中基于 AI 的 ABAP 单元功能
简介
作为 ABAP 开发人员,您不断努力提高代码的质量和可靠性。编写彻底的单元测试是这种努力的基石,但它可能非常耗时。面向开发人员的 SAP Joule ABAP AI 功能可以通过生成 ABAP 单元测试显著加速此流程,允许您专注于优化和定制这些测试,以确保全面覆盖。
使用场景
面向开发人员的 SAP Joule ABAP AI 功能在创建 ABAP 单元测试(直接集成到 Eclipse 中的 ABAP 开发工具 (ADT))方面提供了强大的帮助。这款由人工智能驱动的功能能够帮助你:
缩短开发时间 :自动生成初始测试方法,省去编写样板代码的工作量。
提高测试覆盖范围 :确定可能缺少的潜在测试用例和相关性。
提高代码质量 :重构生成的测试代码,遵守卓越实践和编码标准。
功能
面向开发人员的 SAP Joule ABAP AI 功能为 ABAP 开发人员提供集成到 ADT 的基于 AI 的 ABAP 单元功能。这些功能可以通过 ABAP 单元聊天访问,旨在帮助您更有效地创建和改进测试。以下是概览:
测试生成 :从 ADT 中的不同位置生成 ABAP 单元测试。
相关性分析 :识别测试不友好的相关性以改进单元测试。
测试双重支持 :通过将测试不友好的依赖项替换为测试双打来将其隔离。
测试代码说明 :通过测试代码解释获取洞察,以识别测试嗅觉并了解测试模式。
生成的测试代码重构 :重构生成的测试代码以满足质量标准和编码样式首选项。
拆分测试类和测试方法 :通过拆分测试类和方法改进代码结构。
生成 ABAP 单元测试
使用 ABAP 单元聊天生成测试
让我们浏览一个使用 Joule 和 ABAP 单元聊天生成 ABAP 单元测试的示例。
注意
除此处显示的内容外,您还可以使用 Joule 聊天中的自由式提示与 AI 支持的 ABAP 单元功能进行交互。
场景:存在全局 ABAP 类 ZCL_00_SOLUTION,其中包含具有方法 FIND_PASSENGER_FLIGHT 的本地类 LCL_CARRIER。已存在此类的 ABAP 单元测试,这些测试在测试类 LTCL_FIND_FLIGHTS 中实施。

要使用 ABAP Unit Chat 生成测试,请在源代码编辑器中右键单击,然后选择 Joule→Start Chat for ABAP Unit 。ABAP 单元聊天随即打开,询问您要如何处理类。

如果要创建 ABAP 单元测试以验证代码,请选择生成测试。
如果要专门了解有关现有 ABAP 单元测试的更多详细信息,例如是否存在测试冶炼或使用了哪些测试模式,请选择解释 <测试类名称> 。在我们的案例中,测试类的名称为 LTCL_FIND_FLIGHTS。
如果要识别测试不友好的相关性以改进测试代码,请选择查找测试不友好相关性。
您还可以通过键入聊天来使用简单的自由式提示。
由于我们希望添加 ABAP 单元测试,因此我们选择*"生成测试*"。在下一步中,您可以使用以下选项生成测试方法(此处不显示):
所选方法...:通过此选项,您可以选择要为其生成 ABAP 单元测试的全局类的方法。
所选局部类...:此选项允许您选择要为其生成 ABAP 单元测试的本地类及其相应方法。
在此,我们选择为本地类 LCL_CARRIER 的方法 FIND_PASSENGER_FLIGHT 生成 ABAP 单元测试。

在下一步中,您可以在将测试添加到 <现有测试类的名称> (此处为 LTCL_FIND_FLIGHTS)和将测试添加到新测试类之间进行选择。我们选择第一个选项。

在下一步中,将显示生成的代码,我们可以选择代码上方的按钮之一:
选择插入以在当前光标位置插入生成的代码。
选择复制将生成的代码复制到剪贴板。
重构生成的测试代码
使用 Joule 生成单元测试后,您可以通过直接在 Joule 聊天中输入自由式提示来重构生成的代码。
重构是使用 AI 生成单元测试时的重要步骤。它确保测试代码符合您的质量标准并符合您的首选编码样式。要重构生成的代码,请在 Joule 聊天中将说明作为自由式提示输入。
以下示例显示了可以请求 Joule 执行的操作:
避免匈牙利表示法(无前缀)
在设置方法中创建 CUT
提取并使用参数化自定义断言
内嵌和移除自定义断言
针对接口而非类的程序
使用内联声明
使用构造函数表达式填充结构和表
在一行中写入 assert 语句
我们的例子到此结束。Joule 可以根据测试方法的逻辑生成更复杂的测试。请记得始终检查并细化生成的代码,以确保其满足您的特定测试需求。
总结
面向开发人员的 SAP Joule ABAP AI 功能可加速 ABAP 单元测试的创建,从而提高代码质量并减少开发时间。
该流程包括启动 ABAP 单元聊天、选择方法、选择测试类以及检查/插入生成的测试代码。
ADT 中集成的基于 AI 的 ABAP 单元功能包括测试生成、相关性分析、测试双重支持、测试代码解释、生成的测试代码重构以及拆分测试类和测试方法。
ABAP 单元聊天允许自由式提示与基于 AI 的 ABAP 单元功能进行交互。
进一步阅读
ABAP 单元测试 | SAP Help Portal
面向开发人员的 SAP Joule, ABAP AI 功能 | SAP Help Portal