我尝试了两种方法来利用这两个链接中提到的IF-Else条件逻辑
1 How to check additional values with if condition (using karate framework)?
[ 2] https://github.com/intuit/karate#conditional-logic
尝试了不同的组合后,我仍然没有成功,而且我看不到其他方法可以使我的方案发挥作用。为了提供更好的可见性和理解性,我附加了屏幕截图。
如图所示,output2.c.data和z.d.data都是空数组。使用这两个引用,我定义了
*def output4 = (z.d.data == output2.c.data ? {pass:true} : {pass:false})
我期望我的输出- output4 -是{"pass":true}
由于未知的原因,我的情况与预期相反。
答案 0 :(得分:1)
编辑:请不要在将来为此类示例制作屏幕截图,这样更易于阅读和粘贴代码以进行试用。
您无法在JavaScript中对两个数组执行均等运算,这就是为什么需要空手道的“深度均等” match
。
* def foo = { data: [] }
* def bar = { data: [] }
# wrong
* def result = foo.data == bar.data ? { pass: true } : { pass: false }
* match result == { pass: false }
# right
* def result = karate.match(foo.data, bar.data).pass ? { pass: true } : { pass: false }
* match result == { pass: true }