RSpec and Rails Features
Learn more about the test file and the test file's features in the test.
The project_spec.rb
file uses four basic RSpec and Rails features:
- It requires
rails_helper
. - It defines a test suite with
RSpec.describe
. - It creates an RSpec example with
it
. - It specifies a particular state with
expect
.
Here we can see spec/models/project_spec.rb
file:
require "rails_helper"RSpec.describe Project doit "considers a project with no tasks to be done" doproject = Project.newexpect(project.done?).to be_truthyendend
Let’s discuss each feature one-by-one:
spec_helper.rb
file
On the first line, the file rails_helper
, which contains a Rails-related setup typical to all tests, is required. The rails_helper
file, in turn, requires a file named spec_helper
, which contains a non-Rails RSpec setup.
Note: We’ll peek into that file in the next chapter when we learn about more Rails-specific test features.
RSpec.describe
The RSpec.describe
* method is used online. In RSpec, the describe
method defines a suite of specs that can share a common setup. The first argument to describe
is either a class name or a string. The first argument documents what the test suite is supposed to cover. We can then pass an optional number of metadata arguments, of which there are none at the moment. The metadata is used to ...