У меня есть соответствие каждому утверждению, как показано ниже в моем коде. Просто попытался создать примеры, похожие на мой код, просто для объяснения проблемы.
Scenario: Example scenario 1
* def response =
"""
[
{
id: 1,
name: "John",
password: "abc123"
},
{
id: 2,
name: "David",
password: "abc123"
},
{
id: 3,
name: "Mike",
password: "abc123"
},
{
id: 4,
name: "Johny"
}
]
"""
* match each response[*].password contains 'abc123'
Статус теста: Pass
Поле пароля отсутствует в объекте 4 (где id = 4). Вышеуказанный тест проходит для меня. Я ожидаю, что в этом случае каратэ не выдержит испытания. Как я могу сделать мой тест неудачным в этом случае?
Scenario: Example scenario 2
* def response =
"""
[
{
id: 1,
name: "John",
},
{
id: 2,
name: "David",
},
{
id: 3,
name: "Mike",
},
{
id: 4,
name: "Johny"
}
]
"""
* match each response[*].password contains 'abc123'
Статус теста: Пройдено
Здесь в ответе нет поля пароля вообще. Но мой тест проходит успешно.
Нужна работа, чтобы провалить такой сценарий ios.
Пример 3:
* def response =
"""
[
{
id: 1,
name: "John",
password: "abc123",
skills :[ "training", "management"
]
},
{
id: 2,
name: "David",
password: "abc123",
skills :[ "training", "management"
]
},
{
id: 3,
name: "David",
password: "abc123",
skills :[ "training", "coding"
]
},
{
id: 4,
name: "David",
password: "abc123",
skills :[ "training", "management"
]
}
]
"""
С учетом формата * match each response contains { password: 'abc123' }
( упомянутый @peter), чтобы проверить примеры 1 и 2, что, если я хочу проверить массив навыков, имеющий «обучение» в каждом объекте ответа? Как я могу этого добиться?