Проверка того, что HTTP-запрос не сделан в Rails
Какой самый простой способ проверить, не выполнен ли HTTP-запрос?
Скажем, я хочу, чтобы мое приложение НЕ отправляло вызов API на удаленный сервер, если пользователь не указал имя пользователя.
Какой тест RSpec я должен написать в своем приложении Rails, чтобы проверить, что HTTP-запрос никогда не выполняется? Может ли fakeweb помочь мне как-нибудь?
3 ответа
Вам, вероятно, стоит попробовать WebMock.
Это позволяет вам проверить, сколько раз был запрошен какой-либо URL.
assert_requested :post, "http://www.example.com", :times => 0
Скажем, у нас есть следующий код, который делает условный запрос к API GitHub.
if condition
user = Octokit.user 'dideler'
end
Используя RSpec, вы можете проверить, что объект не получает сообщение для вызова метода.
expect(Octokit).to_not receive(:user)
Если это проходит, это означает, что запрос не был сделан.
Я думаю, я понимаю, что вы спрашиваете. Вы просто хотите проверить на наличие ошибок, чтобы убедиться, что запрос отправлен или действителен.
Если username!= Blank -> api call else, верните "вы не ввели имя пользователя".
Или вы можете использовать данные возврата API для проверки правильности запроса.
Надеюсь, это поможет.