assert_response
- 1.0.0
- 1.1.6
- 1.2.6 (0)
- 2.0.3 (12)
- 2.1.0 (0)
- 2.2.1 (0)
- 2.3.8 (0)
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
assert_response(type, message = nil)
public
Asserts that the response is one of the following types:
- :success - Status code was 200
- :redirect - Status code was in the 300-399 range
- :missing - Status code was 404
- :error - Status code was in the 500-599 range
You can also pass an explicit status number like assert_response(501) or its symbolic equivalent assert_response(:not_implemented). See <a href="/rails/ActionController/StatusCodes">ActionController::StatusCodes</a> for a full list.
Examples
# assert that the response was a redirection assert_response :redirect # assert that the response code was status code 401 (unauthorized) assert_response 401
Good way to see what went wrong
Use the message parameter like that:
assert_response :success, @response.body
If this fails (the response isn’t a success), it will display the response body along with the failure message, thus allowing you to quickly find out what went wrong. If the response is e.g. 500, there will probably be some exception stacktrace displayed in the body. And so on.
assert_response(:success) checks if the status code is in the range 200-299
success? in ActionController::TestResponseBehavior is defined as:
def success? (200..299).include?(response_code) end