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
可以在单元测试中找到一些附加示例。为便于快速参考,以下是您的空手道测试报告:
这有点实验性。我会请知道此事的人在这里发表评论。同时,我的建议是,您不应该将其视为一个
拦截器
,而应该在评估和测试套件方面取得进展。如果这是紧急情况,请遵循以下流程: