RSpec Rails brings the RSpec testing framework to Ruby on Rails as a drop-in alternative to its default testing framework, Minitest. In RSpec, tests are not just scripts that verify your application code. They’re also specifications (or specs, for short): detailed explanations of how the application is supposed to behave, expressed in plain English. RSpec follows semantic versioning, which means that “major version” upgrades (e.g., 2.x → 3.x) come with breaking changes. If you’re upgrading from version 2.x or below, read the rspec-rails upgrade notes to find out what to watch out for. In RSpec, assertions are called expectations, and every expectation is built around a matcher. When you expect(a).to eq(b), you’re using the eq matcher. RSpec Rails defines ten different types of specs for testing different parts of a typical Rails application. Each one inherits from one of Rails’ built-in TestCase classes, meaning the helper methods provided by default in Rails tests are available.
Features
- RSpec Rails extends Rails' built-in testing framework
- For requests, controllers, models, views, helpers, mailers and routing
- RSpec Rails 5 supports Rails 5.2 to 6.1
- RSpec Rails provides thoughtfully selected features to encourage good testing practices
- RSpec Rails provides some end-to-end (entire application) testing capability to specify the interaction with the client
- Feature specs require the Capybara gem