Karate 空手道怎么练?

Karate 空手道怎么练?,karate,Karate,我有一个功能使用了另外两个类似的功能: When call read(ser.getCarList) headers When call read(ser.getTaxes) headers 因此,getCarList的第一个特性有两个验证 When method Get * configure continueOnStepFailure = true Then status 200 And match response = read ('this:getCarAssertion') *

我有一个功能使用了另外两个类似的功能:

When call read(ser.getCarList) headers
When call read(ser.getTaxes) headers
因此,getCarList的第一个特性有两个验证

When method Get
 * configure continueOnStepFailure = true
Then status 200
And match response = read ('this:getCarAssertion')
 * configure continueOnStepFailure = true

我尝试过使用新关键字,但当我得到状态代码200但响应不好时,下一个功能getTaxes在执行过程中不会继续

continueOnStepFailure
是一个新关键字,用于在查看验证结果时使用,不会在第一次失败时立即失败。其目的是进行断言或验证,以便在断言测试结果时可以验证尽可能多的信息

避免将其用作几个步骤的纯if条件(产生意外后果),
*continueOnStepFailure=true
的默认行为仅在
match
步骤中发生故障时才会继续执行,并且一旦您使用
*continueOnStepFailure=false
禁用机制,测试将失败(但仍提供
continueOnStepFailure
块中每个步骤的详细信息)。这是因为
match
是任何类型验证的推荐关键字,也是您可以利用强大的JSON断言库等的方式

还建议在设置
匹配
关键字后明确设置
*continueOnStepFailure=false
,以便在有意识地决定在失败后继续评估关键字后不会出现意外行为

也就是说,有一些方法可以扩展和配置
continueOnStepFailure
的行为,使其超出默认行为。关键字还接受JSON输入,而不是布尔值,这允许更多的可扩展性。例如,关键字的默认行为可以表示为:

*配置continueOnStepFailure={enabled:true,continueAfter:false,关键字:['match']}

这意味着将启用
continueOnStepFailure
机制,禁用该机制后,场景执行将不会继续,并且只有在
match
关键字中发生故障时,它才会接受故障。请注意,如果将
continueAfter
设置为true,则场景将继续执行其余步骤,但场景本身仍将标记为失败(报告中有适当的输出,该场景的任何调用方都有典型的失败行为)。我强烈反对将
continueAfter
设置为true

对于您的特定用例,
status
关键字肯定在我描述的断言范围内<代码>状态200只是
匹配响应状态==200
的快捷方式。很可能我们应该将状态添加到默认行为中,因为它是一个匹配断言。使用JSON中的扩展配置,您可以针对您的用例执行以下操作:

When method Get
And configure continueOnStepFailure = { enabled: true, continueAfter: false, keywords: ['match', 'status'] }
Then status 200
And match response = read ('this:getCarAssertion')
And configure continueOnStepFailure = false
可以在单元测试中找到一些附加示例。为便于快速参考,以下是您的空手道测试报告:


这有点实验性。我会请知道此事的人在这里发表评论。同时,我的建议是,您不应该将其视为一个
拦截器
,而应该在评估和测试套件方面取得进展。如果这是紧急情况,请遵循以下流程: