Я работаю с Braintree SDK для осуществления платежей на стороне сервера PayPal. Для учета всех сценариев ios при отправке платежа, таких как отклоненные платежи и др. c. Я хочу написать тесты, используя макетный экземпляр класса API Braintree_Gateway. Ответы этого API являются сильно вложенными и довольно сложными объектами.
Для насмешки над этими ответами я вижу два варианта:
- Захват реального объекта ответа, его сериализация и загрузка из память для тестирования
- Создание и вложение объектов самостоятельно путем создания экземпляра класса Response
Есть ли третий способ, который я еще не рассмотрел?
Номер 1 имеет преимущество в том, что я тестирую на объекте, который API фактически возвратил, что означает, что я тестирую на «реальную вещь». Также довольно быстро настроить
. Номер 2 имеет то преимущество, что в моем тесте структура объекта более открыта и, следовательно, обеспечивает лучшую ссылку на то, как должен выглядеть ответ в каждом случае. Недостатком является то, что его утомительно настраивать и утомительно поддерживать.
Как правильно сделать это, учитывая ремонтопригодность и целостность тестов?