Структура каратэ - Как правильно использовать условную логику "если-то-еще" в сценарии? - PullRequest
0 голосов
/ 08 сентября 2018

Я попробовал несколько способов использовать условную логику IF-Else, как упоминалось в этих двух ссылках

1 Как проверить дополнительные значения с условием if (( с использованием каркаса каратэ)?

[2] https://github.com/intuit/karate#conditional-logic

После попытки различных комбинаций я все еще не могу и не вижу других способов заставить мой сценарий работать. Для лучшей наглядности и понимания я прикрепил скриншот.

conditional logic issue in karate

Как показано, оба output2.c.data и z.d.data являются пустыми массивами. Используя эти две ссылки, я определил
*def output4 = (z.d.data == output2.c.data ? {pass:true} : {pass:false})

Я ожидал, что мой вывод - output4 - будет {"pass":true}

Для По неизвестным причинам мой сценарий дает мне противоположность того, что я ожидаю.

1 Ответ

0 голосов
/ 08 сентября 2018

РЕДАКТИРОВАТЬ: пожалуйста, не делайте скриншоты для таких примеров в будущем, намного легче читать и вставлять код, чтобы попробовать.

Вы не можете выполнить операцию равенства для двух массивов в 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 }
...