2012-03-28 2 views
1

Приложение для моих рельсов говорит о нескольких различных API-интерфейсах, и я бы хотел написать тесты, чтобы убедиться, что ошибки обрабатываются должным образом в случае возникновения проблемы с запросом. Например, если служба недоступна и недоступна.Как проверить ошибки API?

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

ответ

1

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

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

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

Смежные вопросы