testing - 是否可以评估“匹配”并获得布尔结果,而不是让测试失败?
问题描述
空手道中“匹配”的正常行为是,如果匹配失败,则场景失败。但是,如果我只想评估匹配并获得布尔结果怎么办?
类似于: *def success = (match response == expected);
其原因可能如下:响应的“形状”可能会根据提供的参数而有所不同,例如肥皂调用。示例:如果您要求给定一些“关键”参数的人,结果可能是
<result>Not found</result>
或者它可能是具有人员记录(名字、姓氏、年龄、地址、城市......)的更复杂的 xml 树。
在某些情况下,您可能希望测试场景在这两种情况下都成功,而不管结果的“形状”如何。但是,您不能使用两个单独的匹配项,因为其中至少有一个会失败。如果我可以'或'结果,问题将得到解决:
* match response == shape1 || match response == shape2
或带有变量:
* def result1 = (match response == shape1)
* def result2 = (match response == shape2)
* def result3 = (match response == shape3)
* match (result1 || result2 || !shape3);
# test succeeds if boolean expression evaluates to true
在空手道中,将(布尔)表达式的强大功能与多个匹配项结合起来,这样的事情是否遥不可及?
解决方案
推荐阅读
- spring-boot - Spring 应用程序无法与返回短主机名的负载平衡数据库服务连接
- matlab - 如何让 Matlab 做惰性求值?
- postgresql - 随着时间的推移,在不同情况下使用不同情况下的键查询相同的 JSON_B 嵌套
- javascript - 如何在弹出模式中关闭或暂停 vimeo iframe
- ubuntu - Dotnet 核心骑手 snap ubuntu msbuild
- c# - async Task.Run lambda 表达式使 Android 上的 Unity AR 应用程序崩溃,但在 iOS 上运行良好
- installation - 努力将 pipenv 的本地安装添加到路径
- python - Django中快捷方式反向和url反向之间的区别
- create-react-app - create-react-app 中的 tsconfig.json 模块选项
- angular - 内容脚本内的角度路由影响当前网页的主要内容