In Rails 5, the preferred base class for testing controllers is ActionDispatch::IntegrationTest
.
If you have an API that receives parameters as JSON request bodies, here are some helper methods to facilitate testing:
class ActionDispatch::IntegrationTest
def put_json(path, obj)
put path, params: obj.to_json, headers: { 'CONTENT_TYPE' => 'application/json' }
end