Как проверить на ошибки API? - PullRequest
1 голос
/ 28 марта 2012

Мое приложение rails взаимодействует с парой различных API, и я хотел бы написать тесты, чтобы убедиться, что ошибки обрабатываются должным образом в случае возникновения проблемы с запросом.Например, если служба недоступна и недоступна.

Можно ли имитировать ошибку, возвращающуюся из службы, даже если во время теста это может быть нормально?

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Gem webmock поможет вам в этом.Для вашего конкретного вопроса прокрутите вниз до «Ответ с пользовательским сообщением о состоянии».

stub_request(:any, "www.example.com").to_return(:status => [500, "Internal Server Error"])

req = Net::HTTP::Get.new("/")
Net::HTTP.start("www.example.com") { |http| http.request(req) }.message # ===> "Internal Server Error"

Я использовал этот камень с Rspec и Test :: Unit.Самый большой недостаток заключается в том, что логика сопоставления, которая решает, какие запросы применяются к конкретному макету, не всегда работает так, как вы ожидаете.Это незначительная жалоба, хотя.Драгоценный камень является нетто-позитивным и гораздо лучше, чем попытка запустить живой сервис из тестового примера.

0 голосов
/ 28 марта 2012

Вы можете использовать макет вместо реального сервиса и заставить его вернуть ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...