Citrus-Framework - 自定义操作的参数处理
Citrus-Framework - Parameter handling for Custom-Actions
为了解决此处描述的问题:,我创建了一个自定义操作,它基本上包装了 Java-Call 以在我的 Java-Code 中为我提供选项根据需要验证 Java-程序结果。
但是将 parameters/variables 从测试用例转移到 Java 程序很困难。
我需要在测试期间和每次使用不同的参数多次调用这个程序。因此,我在调用自定义操作之前添加了以下内容:
variable("param1", "myValue1");
variable("expectedReturnCode", "0");
action(myCustomAction);
稍后在测试中,经过一些其他操作后,我希望它像这样:
variable("param1", "myValue2");
variable("expectedReturnCode", "99");
action(myCustomAction);
在我的自定义操作中-Class 我有以下内容:
String param1 = context.getVariable("param1");
expectedReturnCode = Integer.parseInt(context.getVariable("expectedReturnCode"));
问题是,在Custom-Action Call之前Text-Context没有填充,似乎在第一个action被调用之前就已经完全设置了Context,所以即使是第一个CustomAction也得到99作为预期的 RC。
所以,我的问题是:如何将各个参数传输到我的自定义操作?
不要使用variable()
,因为它仅用于在测试运行之前初始化变量。这就是为什么您的第二次调用会立即覆盖变量值的原因。 variable()
仅用于在测试开始时进行设置。
相反,您应该使用 createVariable(String variableName, String value)
,它在 运行 时间作为测试用例中的测试操作执行。
为了解决此处描述的问题:
但是将 parameters/variables 从测试用例转移到 Java 程序很困难。 我需要在测试期间和每次使用不同的参数多次调用这个程序。因此,我在调用自定义操作之前添加了以下内容:
variable("param1", "myValue1");
variable("expectedReturnCode", "0");
action(myCustomAction);
稍后在测试中,经过一些其他操作后,我希望它像这样:
variable("param1", "myValue2");
variable("expectedReturnCode", "99");
action(myCustomAction);
在我的自定义操作中-Class 我有以下内容:
String param1 = context.getVariable("param1");
expectedReturnCode = Integer.parseInt(context.getVariable("expectedReturnCode"));
问题是,在Custom-Action Call之前Text-Context没有填充,似乎在第一个action被调用之前就已经完全设置了Context,所以即使是第一个CustomAction也得到99作为预期的 RC。
所以,我的问题是:如何将各个参数传输到我的自定义操作?
不要使用variable()
,因为它仅用于在测试运行之前初始化变量。这就是为什么您的第二次调用会立即覆盖变量值的原因。 variable()
仅用于在测试开始时进行设置。
相反,您应该使用 createVariable(String variableName, String value)
,它在 运行 时间作为测试用例中的测试操作执行。