#Ignore и #present - одно и то же?

В каком случае я бы хотел использовать #ignore против #present или наоборот? Или они идентичны?

При первом чтении документов я думал, что следующее пройдет, но это не так. Изменить, чтобы добавить: это не удается в Karate 0.9.0, но проходит в 0.8.0.

* def foo = {a: 1}
* match foo == {a: 1, b: "#ignore"}

Они проходят:

* def foo = {a: 1}
* match foo == {a: 1, b: "##ignore"}
* match foo == {a: 1, b: "##present"}

person Alex D    schedule 20.12.2018    source источник


Ответы (2)


Да, если вы хотите сопоставить отсутствующий или нулевой ключ, используйте двойной хеш:

* def foo = { a: 1 }
* match foo == { a: 1, b: '##ignore' }
* match foo == { a: 1, b: '#notpresent' }

* def foo = { a: 1, b: null }
* match foo == { a: 1, b: '##ignore' }
* match foo == { a: 1, b: '#present' }

* def foo = { a: 1, b: 'bar' }
* match foo == { a: 1, b: '##ignore' }
* match foo == { a: 1, b: '#present' }
person Peter Thomas    schedule 20.12.2018
comment
Спасибо @Peter. Согласны ли вы, что #ignore документацию следует отредактировать? #present документация довольно ясна. - person Alex D; 20.12.2018
comment
@AlexJ, спасибо, что подняли эти крайние случаи, очень признательны: github.com/intuit/karate/issues / 628 - person Peter Thomas; 21.12.2018