Чаще всего я пишу тесты уже по относительно готовому функционалу. Бывают ситуации конечно, когда пишу до реализации, по просьбе разработчика.
В клиенте реализовано несколько уровней абстракций:
Actions - верхний уровень, работает с бизнес сущностями и апи
API - разные апи (oauth, public, user)
Request - минимальная обертка над библиотекой отправки запросов. нужна, по факту, только для oauth подписей.
В самих тестах так же тестируються отдельно API и Actions.
Например для нового метода, подобный метод добавляется в соответсвующий API класс, и дальше он покрывается тестами.
def change_pin(old_pin, new_pin)
payload = {
oldPin: old_pin,
newPin: new_pin
}
headers = @json_headers
Request.post("#{@base_url}/user/pin-code",
payload.to_json, headers, before_execution_proc: before_proc) { |resp| resp }
end
Не понял про подготовку данных rspec-омю