Написание сценариев Cucumber для реактивного кода - PullRequest
0 голосов
/ 11 ноября 2018

Я очень новичок в BDD, и у меня возникли некоторые проблемы с изложением сценариев для некоторого кода, который я написал. Код в основном запрашивает корзину Couchbase об отмененных заказах, а затем вызывает API отмены заказов для отмены этих заказов. Для каждого вызова API отмены заказа он вызывает другую службу для генерации токена доступа.

Весь код был написан на RxJava. В случае ошибок у меня есть резервные наблюдаемые объекты (например, если что-то пойдет не так при запросе Couchbase, это возвратится к пустой наблюдаемой). У меня есть подобные откаты и в других местах кода.

Я хочу написать сценарии Cucumber для моего кода. Но я не могу понять, как это сделать. Например, должен ли я предположить, что у сервиса есть действительный токен доступа и orderId для отмены (запрос CB возвращает набор orderId, которые необходимо передать API отмены заказа вместе с токеном доступа)?

В идеале я должен проверить следующее:

  1. Сбой запроса Couchbase. В этом случае я должен получить пустую наблюдаемую.

  2. Сбой вызова API токена доступа. И в этом случае я должен получить пустую наблюдаемую.

  3. Ошибка вызова API отмены заказа. И в этом случае я должен получить пустую наблюдаемую.

  4. Вызов для отмены заказа API возвращает код ответа, отличный от 200. Затем укажите коды ответа.

  5. Счастливый случай.

Теперь предположим, что я хочу протестировать первый случай, то есть запрос CB не выполняется. Каким будет фон в этом случае? Как мне смоделировать ошибку запроса?

...