При разработке функциональных тестов мне нужно смоделировать рабочий процесс, в котором результат одного шага используется в качестве входных данных для следующих. Пример такой:
- search for a hotel\room with given criteria
- check that request succeeded
- проверить, что есть хоть какие-то результаты
- выбрать случайную комнату с шага 1.
- book the room from step 2.
- check that request succeeded
- cancel the booking from step 3.
- check that request succeeded
Ключевые моменты здесь:
- мы не можем выполнить 3. без выполнения 1.
- мы не можем выполнить 4. без выполнения 3.
- если шаг терпит неудачу, мы должны прервать функцию
Каков подход к разработке спецификации для такого случая?