Как разработать зависимое тестирование сценария ios на основе данных? - PullRequest
0 голосов
/ 21 июня 2020

Я прочитал, что НЕ рекомендуется писать зависимый тестовый сценарий ios. Но что, если приложение в значительной степени управляется данными и манипулирует (создает, несколько потоков обновления, логически удаляет) данными. По сути, мы хотим минимизировать:

  1. Создание тестовых данных для каждого зависимого сценария (например, для обновлений сначала необходимо создание данных)
  2. повторное выполнение шагов
  3. Общее время выполнения набора тестов

Вопрос: Чтобы контролировать выполнение потоков, могу ли я расширить базовые классы Karate, которые обрабатывают @ parallel = false, и добавить собственный код, учитывающий «Зависит от сценария»? Есть ли лучший / альтернативный дизайн? Пожалуйста, предложите.

Пример:

  • Сценарий1: Создать T1, T2 [Параллельно]
  • Сценарий2: Создать T3 [Параллельно]
  • Сценарий3: Создайте R1 (связь между T1 и T2), который обновляет T1, T2 [Последовательно: подождите, пока 1]
  • Сценарий 4: Создайте R2 (связь между T1 и T3), который обновляет T1, T3 [Последовательно: дождитесь 1, 2]
  • Сценарий 5: Удалить R1, который обновляет T1, T2 [Последовательно: ждать до 1,3]
  • Сценарий 6: Удалить T1, который удаляет R1, R2 [Последовательный: подождите, пока 1,4, 5]

1 Ответ

1 голос
/ 21 июня 2020

Не существует «magi c», вы должны:

a) писать «потоки», которые устанавливают данные в начале (это то, для чего предназначен Background) и проверять все ожидаемые условия

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

В качестве напоминания прочтите это: https://github.com/intuit/karate#script -структура

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...