testing ruby: 1.9.3, 2.0.0, 2.1.x, 2.2.x; Capybara: 0.4.x, 1.1.x, 2.0.x
capybara-json provides the same interface to testing JSON API (both local and remote)
Capybara is an acceptance test framework, and it has no interest with client error(4xx response).
require 'capybara/json'
include Capybara::Json
Capybara.current_driver = :rack_test_json
Capybara.app = MyRackApp
post '/', { "this is" => "json" } # POST '/'
json #=> parsed json response
raw_json #=> raw response body
get '/errors/400'
status_code #=> 400
get! '/errors' #=> raise Capybara::Json::Error
get '/errors', {}, { 'header' => '' } # set request headers
response_headers #=> get response headers
Capybara.current_driver = :httpclient_json
Capybara.app_host = 'http://example.com'
post '/', { "this is" => "json" } # POST 'http://example.com/'
json #=> parsed json response
raw_json #=> raw response body
get '/errors/400'
status_code #=> 400
get! '/errors' #=> raise Capybara::Json::Error
get '/errors', {}, { 'header' => '' } # set request headers
response_headers #=> get response headers