Нет документации по тестированию с Фарадеем. Там, где я работаю, появился Ruby on Rails, потому что это круто. Мало думали о тестировании красных ящиков. Я хотел бы предоставить некоторую документацию, чтобы помочь другим
usage
Спасибо, что подняли этот вопрос. В ответ я опубликовал PR, чтобы включить примеры live test / unit и rspec использования адаптера Faraday Test: # 1000. Это рекомендуемый способ тестирования Фарадея вместо внешних тестовых двойных библиотек (rspec, mocha, webmock и т. Д.).
Я ни разу не заметил, что это тестирование таких вещей, как тайм-ауты, ошибки соединения и т. Д. Не одобряют ли эту тему или просто способ, которым используется PR # 998.
Полагаю, я не понимаю синтаксиса
Полагаю, я не понимаю синтаксиса
Уф, может мне стоит еще раз вернуться к тестовой документации Фарадея: /
Синтаксис в # 1000 использует экземпляр Faraday::Adapter::Test::Stubs
, эксклюзивный объект-заглушку для проверки циклов запроса / ответа Фарадея. Вы можете использовать его для настройки фиктивных ответов на HTTP-запросы в конкретном тесте.
it 'parses name' do
# this block yields a rack response: an array with:
# response status, http header hash, and response body
stubs.get('/ebi') do |env|
[
200,
{ 'Content-Type': 'application/javascript' },
'{"name": "shrimp"}'
]
end
expect(client.sushi('ebi')).to eq('shrimp')
stubs.verify_stubbed_calls
end
Прошу прощения, я явно недостаточно внимательно прочитал ваши вопросы. Я совершенно упустил из виду, что вы специально хотели протестировать исключения. Подобный тест тоже работает (я добавлю его в # 1000):
it 'handles exception' do
stubs.get('/ebi') do
raise Faraday::ConnectionFailed, nil
end
expect { client.sushi('ebi') }.to raise_error(Faraday::ConnectionFailed)
stubs.verify_stubbed_calls
end
Я предпочитаю конкретные реализации двойных тестов, подобные этой, более обобщенному подходу с имитацией, поскольку они по-прежнему проходят через весь рабочий процесс запроса Фарадея. Если разработчик в любом случае захочет использовать mocks RSpec, им лучше подойдет отличная документация RSpec.
Поставляется с # 1000
Самый полезный комментарий
Спасибо, что подняли этот вопрос. В ответ я опубликовал PR, чтобы включить примеры live test / unit и rspec использования адаптера Faraday Test: # 1000. Это рекомендуемый способ тестирования Фарадея вместо внешних тестовых двойных библиотек (rspec, mocha, webmock и т. Д.).