Я очень новичок в BDD, и у меня возникли некоторые проблемы с изложением сценариев для некоторого кода, который я написал. Код в основном запрашивает корзину Couchbase об отмененных заказах, а затем вызывает API отмены заказов для отмены этих заказов. Для каждого вызова API отмены заказа он вызывает другую службу для генерации токена доступа.
Весь код был написан на RxJava. В случае ошибок у меня есть резервные наблюдаемые объекты (например, если что-то пойдет не так при запросе Couchbase, это возвратится к пустой наблюдаемой). У меня есть подобные откаты и в других местах кода.
Я хочу написать сценарии Cucumber для моего кода. Но я не могу понять, как это сделать. Например, должен ли я предположить, что у сервиса есть действительный токен доступа и orderId для отмены (запрос CB возвращает набор orderId, которые необходимо передать API отмены заказа вместе с токеном доступа)?
В идеале я должен проверить следующее:
Сбой запроса Couchbase. В этом случае я должен получить пустую наблюдаемую.
Сбой вызова API токена доступа. И в этом случае я должен получить пустую наблюдаемую.
Ошибка вызова API отмены заказа. И в этом случае я должен получить пустую наблюдаемую.
Вызов для отмены заказа API возвращает код ответа, отличный от 200. Затем укажите коды ответа.
Счастливый случай.
Теперь предположим, что я хочу протестировать первый случай, то есть запрос CB не выполняется. Каким будет фон в этом случае? Как мне смоделировать ошибку запроса?