У меня есть следующий код
* def cat =
"""
{
kittens: [
{
id: 23,
name: 'Bob'
},
{
id: 42,
name: 'Wild'
}
]
}
"""
* def id = {id: 23}
Я пытаюсь следовать Каратэ содержит, и все значения ключей не совпадают с ошибкой , чтобы разрешить все значения ключей не совпадают с ошибкой здесь это то, что у меня есть
* match cat == {kittens: '#(^id)'}
* match cat contains {kittens: '#(^id)'}
, но я получаю следующую ошибку
com.intuit.karate.exception.KarateException: - путь: $, фактический: {kittens = [{ "id": 23, "name": "Bob"}, {"id": 42, "name": "Wild"}]}, ожидается: {kittens = # (^ id)}, причина: все значения не совпадают
Теперь я добавил еще одно поле цвета для каждого котенка:
* def cat =
"""
{
kittens: [
{
id: 23,
colour: 'black',
name: 'Bob'
},
{
id: 42,
colour: 'grey',
name: 'Wild'
}
]
}
"""
* def id = {id: 23, name: 'Bob'}
, используя предоставленный ответ cat.kittens contains '#(^id)'
ЕЩЕ работает.
Альтернатива способ сделать это -
* def id = {id: 23, colour: '#number', name: 'Bob'}
Option1 лучше, так как вам не нужно указывать цвет: '#number'.