在 MyService.java 文件的函数中有一个变量“dummyVariable”。现在我调用端点“dummyEndpoint”,将“dummyVariable”的值设置为 true 或 false。
我想在通过 call() 方法使用空手道特征文件调用“dummyEndpoint”后提取“dummyVariable”的值。
此外,我想根据该值为 true 或 false 在功能文件中执行不同的操作。基本上,这可以被视为在端点调用期间了解 java 服务中的实验是打开还是关闭。
更清晰的解释-> 从空手道文件调用 dummyEndpoint -> 在 java 服务中设置变量的值 -> 希望在调用完成后提取该值。
//MyKarateFile .feature 文件
Scenario: Make a call to service
Given url baseUrl
And path ‘/some-path’
And header Authorization = api
And param environment = env
And request req
When method POST
Then status 200
//want to check dummyVariable 's value here
//MyService.java
private final DummyVariableSetter dummyVariableSetter;
public int myFunction() {
boolean dummyVariable = dummyVariableSetter.isDummyVaribaleOn();
if(!dummyVariable) return 0;
return 1;
}
//DummyVariableSetter .java
public boolean isDummyVaribaleOn() {
return getVersion(“some-property”) >= 0;
}
尝试使用空手道的 exits() 方法但没有成功。
通常团队在这种用例中使用
karate.callSingle()
:https://stackoverflow.com/a/56853597/143475
如果您坚持使用 Java,请按照此处所述使用单例:https://stackoverflow.com/a/54571844/143475
请注意,相互依赖的测试不是一个好的做法,并且 Karate 不支持:https://stackoverflow.com/a/46080568/143475