Karate 如何有条件地使空手道测试失败(使用JavaScript)
如何使用javascript使测试失败 根据文件,这应做到:Karate 如何有条件地使空手道测试失败(使用JavaScript),karate,Karate,如何使用javascript使测试失败 根据文件,这应做到: *如果(true)抛出“自定义消息” 但我得到了一个错误: findAuthDataByUserAndApp.feature:20-javascript评估失败:如果(true)抛出“自定义消息”,则在第9列的第1行输入自定义消息 (我想做的是在可重用特性中基于_arg有条件地匹配响应代码,如) *如果(\uu arg.statusCode!=null&&responseStatus!=\uu arg.statusCode)抛出“自定
*如果(true)抛出“自定义消息”
但我得到了一个错误:
findAuthDataByUserAndApp.feature:20-javascript评估失败:如果(true)抛出“自定义消息”,则在第9列的第1行输入自定义消息
(我想做的是在可重用特性中基于_arg有条件地匹配响应代码,如)
*如果(\uu arg.statusCode!=null&&responseStatus!=\uu arg.statusCode)抛出“自定义消息”
谢谢您不能,对于坚持在日志中添加一些“额外”消息的用户来说,
抛出
只是一种解决方法。“错误”是它当前的设计方式,测试失败,它只是“看起来”像一个JS错误。我们推荐其他模式
* def failed = true
* if (failed) karate.log('custom message')
* assert !failed
如果您坚持,我可以为karate.fail(条件、消息)
方法打开一个功能请求,该方法将执行上述操作。IMHO不应该使用它,因为测试应该是理想的
编辑:
karate.fail('message')
将在0.9.6最终版中提供我找到了一个解决我最初问题的优雅解决方案:
* def expectedStatusCode = req.statusCode || responseStatus
* match responseStatus == expectedStatusCode
(有时解决方案更简单…ok,但有点令人困惑,因为文档@ivangsa ok中有一个确切的示例,我可以确认我们将在下一个版本中修复和更新文档:恭喜:)这不也会起作用吗:
*match responseStatus==req.statusCode
un my case req.statusCode可能不会得到通知