Проверка того, что 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 для проверки правильности запроса.

Надеюсь, это поможет.

Другие вопросы по тегам