Каркас теста по каратэ: только одно утверждение с использованием примеров - PullRequest
2 голосов
/ 27 апреля 2019

Предположим, что я хочу проверить, удаляет ли мой API дублирующиеся записи.

Мои текущие шаги:

1) Публиковать один и тот же JSON-запрос несколько раз, используя Примеры, каждый запрос в отдельности.Сценарий:

Scenario Outline:
Given path '/endpoint'
And request
"""
{
  "field1": <field1>
}
"""
When method post
Then status 200

Examples:
  | field1 |
  | value1 |
  | value1 |

2) Утвердите в новом сценарии, что нет дубликатов:

Scenario:
Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]

Проблема здесь в том, что я подозреваю, что порядок сценариев не гарантируется.Есть ли какой-нибудь подход к решению этой проблемы без «разворачивания» цикла (см. Пример ниже)?

Scenario:
Given path '/endpoint'
And request
"""
{
  "field1": value1
}
"""
When method post
Then status 200

Given path '/endpoint'
And request
"""
{
  "field1": value1
}
"""
When method post
Then status 200

Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]

PD: Мой реальный вариант использования требует как минимум 20 записей в примерах для заполнения очень большого JSON, поэтому«Развертывание» цикла не является решением.

Заранее спасибо.

1 Ответ

2 голосов
/ 27 апреля 2019

Попробуйте альтернативную форму управляемых данными тестов, как описано здесь: https://github.com/intuit/karate#data-driven-features

Таким образом, вы можете иметь второй файл объектов и вызывать его для «цикла», а после цикла выполнить требуемое утверждение.

...