第 74 章 在 Business Central 中测试场景(传统)设计程序
Red Hat Process Automation Manager 目前支持新的 Test Scenarios 设计程序和之前的 测试场景(Legacy) 设计器。默认设计器是新的测试场景设计器,它支持测试规则和 DMN 模型,并提供测试场景的增强的整体用户体验。如果需要,您可以继续使用旧的测试场景设计程序,它只支持基于规则的测试场景。
74.1. 创建并运行测试场景(传统) 复制链接链接已复制到粘贴板!
您可以在 Business Central 中创建测试场景,以在部署前测试新规则数据的功能。基本测试场景必须至少具有以下数据:
- 相关数据对象
- GIVEN 事实
- EXPECT 结果
传统测试场景设计器支持 LocalDate
java 内置数据类型。您可以使用 dd-mmm-yyyy
日期格式的 LocalDate
java 内置数据类型。例如,您可以使用 17-Oct-2020
日期格式进行设置。
使用这个数据,测试场景可以根据定义的事实验证该规则实例的预期和实际结果。您还可以向测试场景添加 CALL METHOD 以及任何可用的 全局范围,但这些场景设置是可选的。
流程
-
在 Business Central 中,进入 Menu
Design Projects,然后点击项目名称。 -
点 Add Asset
Test Scenarios (Legacy)。 - 输入说明性 测试方案 名称并选择相应的 软件包。您指定的软件包必须是分配所需规则资产或将被分配相同的软件包。您可以将数据对象从任何软件包导入到资产的设计程序。
点 Ok 创建测试场景。
新的测试场景现在列在 Project Explorer 的 Test Scenarios 面板中,
- 点 Data Objects 选项卡,验证您要测试的规则所需的所有数据对象是否已列出。如果没有,点 New item 从其他软件包导入所需的数据对象,或者 在软件包中创建数据对象。
所有数据对象就位后,返回到测试场景设计器的 Model 选项卡,并根据可用的数据对象为场景定义 GIVEN 和 EXPECT 数据。
图 74.1. 测试场景设计器
GIVEN 部分定义测试的输入事实。例如,如果在 21 的年龄下为 applicants 在项目 declines loan 应用程序中有一个
Under
规则,那么测试场景中的 GIVEN 事实可能会适用于小于 21 的一些整数。age
EXPECT 部分根据 GIVEN 输入事实定义预期的结果。也就是说,GIVEN 输入事实 EXPECT 这些规则有效或整个规则被激活。例如,在场景的 21 年龄下给定应用程序事实(fact),EXPECT 结果可能是
LoanApplication
,其批准
设置为false
(因为部分应用的结果),也可以是整个Underage
规则的激活。另外,还可在测试场景中添加 CALL METHOD 和任何 全局 :
-
caLL METHOD : 在启动规则执行时,从另一个事实调用方法。点 CALL METHOD,选择一个事实,然后点击
来选择要调用的方法。您可以从 Java 库或从为项目导入的 JAR 调用任何 Java 类方法(如来自 ArrayList 的方法)。
- Globals : 使用它来在测试场景中验证的项目中添加任何全局变量。单击 globals 以选择要验证的变量,然后在测试场景设计器中,单击全局名称和定义字段值以应用到全局变量。如果没有全局变量可用,则必须在 Business Central 中作为新资产创建它们。全局变量是命名的对象,这些对象对决策引擎可见,但与对象不同以进行事实。全局对象的更改不会触发规则的重新评估。
-
caLL METHOD : 在启动规则执行时,从另一个事实调用方法。点 CALL METHOD,选择一个事实,然后点击
- 点测试场景设计器底部的 More,根据需要将其他数据块添加到同一场景文件中。
- 在定义了所有 GIVEN、EXPECT 和其他用于场景的数据后,单击测试场景设计器中的 Save 以保存您的工作。
点右上角的 Run scenario 运行此
.scenario
文件,或者点击 Run all scenarios 在项目软件包中运行所有保存的.scenario
文件(如果存在多个)。虽然 Run scenario 选项不需要保存单个.scenario
文件,但 Run all scenarios 选项需要保存所有.scenario
文件。如果测试失败,请解决窗口底部的 Alerts 消息中描述的任何问题,请查看场景中的所有组件,并尝试再次验证场景,直到场景通过为止。
- 在测试场景设计程序中,点 Save 在所有更改后保存您的工作。
74.1.1. 在测试场景中添加 GIVEN 事实(传统) 复制链接链接已复制到粘贴板!
GIVEN 部分定义测试的输入事实。例如,如果在 21 的年龄下为 applicants 在项目 declines loan 应用程序中有一个 Under
规则,那么测试场景中的 GIVEN 事实可能会适用于小于 21 的一些整数。age
先决�件
- 您的测试场景所需的所有数据对象已创建或导入,并在 Test Scenarios (Legacy) 设计器的 Data Objects 选项卡中列出。
�程
在 Test Scenarios (Legacy) Designer 中,单击 GIVEN 以打开具有可用事实的新 输入 窗口。
图 74.2. 在测试场景中添加 GIVEN 输入
该列表包括以下选项,具体取决于测试场景设计器的 Data Objects 选项卡中可用的数据对象:
- 插入一个新事实: 使用它来添加事实并修改其字段值。输入事实的变量,作为 事实名称。
- 修改现有事实: (仅在添加另一个事实后应用)。) 使用这个选项指定要在执行场景之间的决策引擎中修改之前插入的事实。
- 删除现有的事实: (仅在添加另一个事实后应用)。) 使用这个选项指定在执行场景之间从决策引擎中删除之前插入的事实。
- 激活规则流组 : 使用它来指定要激活的规则流组,以便测试该组中的所有规则。
-
为所需输入选项选择一个事实,然后单击 Add。例如,将 Insert a new fact: 设置为 Applicant
,
并为 Fact 名称 输入 或app
或任何其他变量。 单击测试场景设计器中的事实,再选择要修改的字段。
图 74.3. 修改事实字段
点击编辑图标(
)并从以下字段值中选择:
- literal value : 创建一个 open 字段,在其中输入特定的字面值。
- bound 变量: 将字段的值设置为绑定到所选变量的事实。字段类型必须与绑定的变量类型匹配。
- 创建新事实 : 允许您创建新事实,并将其分配为父事实的字段值。然后,您可以在测试场景设计器中单击子事实,并同样分配字段值或嵌套其他事实。
- 继续为场景添加任何其他 GIVEN 输入数据,并在测试场景设计器中点 Save 来保存您的更改。
74.1.2. 添加 EXPECT 会导致测试场景(传统) 复制链接链接已复制到粘贴板!
EXPECT 部分根据 GIVEN 输入事实定义预期的结果。也就是说,GIVEN 输入事实 EXPECT 其他指定的事实是有效的或整个规则。例如,在场景的 21 年龄下给定应用程序事实(fact),EXPECT 结果可能是 LoanApplication
,其 批准
设置为 false
(因为部分应用的结果),也可以是整个 Underage
规则的激活。
先决�件
- 您的测试场景所需的所有数据对象已创建或导入,并在 Test Scenarios (Legacy) 设计器的 Data Objects 选项卡中列出。
�程
在 Test Scenarios (Legacy) Designer 中,单击 EXPECT 以打开具有可用事实的新 预期 窗口。
图 74.4. 在测试场景中添加 EXPECT 结果
该列表包括以下选项,具体取决于 GIVEN 部分中的数据以及测试场景设计器的 Data Objects 选项卡中可用的数据对象:
- 规则: 使用它来在项目中指定预期因为 GIVEN 输入所激活的特定规则。键入应激活的规则的名称,或者从规则列表中选择,然后在测试场景设计程序中指定规则激活的次数。
- 事实值 : 使用它来选择一个事实,并为它定义值,因为 GIVEN 部分中定义的事实而有效。事实由之前 为 GIVEN 输入定义的事实名称 列出。
- 匹配的任何事实: 使用此选项验证至少一个带有指定的值的事实,因为 GIVEN 输入而存在。
-
为所需预期选择事实(如 事实值:
应用程序
),然后单击 Add 或 OK。 单击测试场景设计器中的事实,再选择要添加的和修改字段。
图 74.5. 修改事实字段
将字段值设置为预期因为 GIVEN 输入的结果(如
批准
|等于
|false
)而有效的值。注意在传统的测试场景设计程序中,您可以在 EXPECT 字段中使用
["value1", "value2"]
字符串格式来验证字符串列表。- 继续为场景添加任何其他 EXPECT 输入数据,并在测试场景设计程序中点 Save 来保存您的更改。
在定义并保存了所有 GIVEN、EXPECT 和其他用于场景的数据后,单击右上角的 Run scenario 以运行此
.scenario
文件,或者点击 Run all scenarios to run all saved.scenario
文件(如果存在多个)。虽然 Run scenario 选项不需要保存单个.scenario
文件,但 Run all scenarios 选项需要保存所有.scenario
文件。如果测试失败,请解决窗口底部的 Alerts 消息中描述的任何问题,请查看场景中的所有组件,并尝试再次验证场景,直到场景通过为止。
- 在测试场景设计程序中,点 Save 在所有更改后保存您的工作。