在空手道DSL中,有一种方法可以为“给定”步骤定义自定义关键字

时间:2018-08-07 00:06:53

标签: karate web-api-testing

我正在从事空手道DSL项目。我正在测试2个相关的(A和B)SOAP事务。第一次交易即A必须在第二次交易B之前完成。我可以通过从B调用A的功能文件来完成此工作。

我当前的代码如下:

Background:
* url = https://www.abcshgda.com/service
* def result = call read(A.feature)

Scenario: B needs to run once the prerequisite A is completed.

Given request read(B_req.xml)
When soap action ''
Then status 200

但是我真正想做的是这样的:

Given A
When SOAP ''
Then status 200

由于空手道是DSL,有没有一种方法可以执行上述操作而无需实际使用预定义的关键字请求和读取请求XML。而是让A在后台执行该操作。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不。这是一个故意的设计决策,如果您需要更多细节,请阅读以下主题:https://github.com/intuit/karate/issues/398

空手道似乎已经很适合您了,我的看法是您不必要地尝试使其变得“更具可读性”,但是从我的经验中,您真的不会从中获得任何好处。

如果定义了负责执行“ A”的JS函数(或Java实用程序),则最好的办法就是这样做:

Given eval myJsFunctionThatCallsA()
And request read('B_req.xml')
When soap action ''
Then status 200