首页 > 解决方案 > 是否可以评估“匹配”并获得布尔结果,而不是让测试失败?

问题描述

空手道中“匹配”的正常行为是,如果匹配失败,则场景失败。但是,如果我只想评估匹配并获得布尔结果怎么办?

类似于: *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

在空手道中,将(布尔)表达式的强大功能与多个匹配项结合起来,这样的事情是否遥不可及?

标签: testingautomated-testskarate

解决方案


推荐阅读