I\'m working on a rails API and I\'m now planning on writing some RSpec tests for the controllers. I\'ve been reading around and I haven\'t been able to figure out what the act
Controller specs - A controller spec is an RSpec wrapper for a Rails functional test. It allows you to simulate a single http request in each example, and then specify expected outcomes
Request specs - Request specs provide a thin wrapper around Rails' integration tests, and are designed to drive behavior through the full stack, including routing (provided by Rails) and without stubbing (that's up to you).
So if you want to test API controllers I would recommend to use Controller specs
as you are testing single requests.
Rails 5 improved the speed and realism of request specs over Rails version 4's controller and request specs. The official recommendation of the Rails team and the RSpec core team is to write request specs instead (of controller specs).