response
предоставляется ActionController::TestCase
.
Из документов :
Объект ActionDispatch :: TestResponse, представляющий ответ объектапоследний ответ HTTP.
Для справки здесь - это документы rspec для тестов контроллера.Это может помочь понять, как response
предполагается использовать.
last_response
взято из Rack::MockResponse < Rack::Response
Из документов :
Возвращает последний ответ, полученный в сеансе.Вызывает ошибку, если еще не было отправлено ни одного запроса.
В вашем тестовом примере вы, вероятно, использовали метод, позволяющий имитировать посещение страницы.Это установит ваш response.status
на 200
, поскольку вы получили успешный запрос.Если вы затем используете Rack для стимулирования конечной точки, например:
put '/users', {my_user: 'blah'}
, и вы делаете это с неверными параметрами, тогда ваш last_response.status
будет 422
.
В конечном счете, путаницапроисходит сходство имен между ActionController
и Rack::MockResponse
, что, я согласен, довольно запутанно.