RSpec/Rails
RSpec/Rails/AvoidSetupHook
RSpec/Rails/HaveHttpStatus
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes (Unsafe) |
2.12 |
- |
Checks that tests use have_http_status
instead of equality matchers.
RSpec/Rails/HttpStatus
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Enabled |
Yes |
Yes |
1.23 |
2.20 |
Enforces use of symbolic or numeric value to describe HTTP status.
This cop inspects only have_http_status
calls.
So, this cop does not check if a method starting with be_*
is used
when setting for EnforcedStyle: symbolic
or
EnforcedStyle: numeric
.
Examples
EnforcedStyle: symbolic
(default)
# bad
it { is_expected.to have_http_status 200 }
it { is_expected.to have_http_status 404 }
# good
it { is_expected.to have_http_status :ok }
it { is_expected.to have_http_status :not_found }
it { is_expected.to have_http_status :success }
it { is_expected.to have_http_status :error }
EnforcedStyle: numeric
# bad
it { is_expected.to have_http_status :ok }
it { is_expected.to have_http_status :not_found }
# good
it { is_expected.to have_http_status 200 }
it { is_expected.to have_http_status 404 }
it { is_expected.to have_http_status :success }
it { is_expected.to have_http_status :error }
EnforcedStyle: be_status
# bad
it { is_expected.to have_http_status :ok }
it { is_expected.to have_http_status :not_found }
it { is_expected.to have_http_status 200 }
it { is_expected.to have_http_status 404 }
# good
it { is_expected.to be_ok }
it { is_expected.to be_not_found }
it { is_expected.to have_http_status :success }
it { is_expected.to have_http_status :error }
RSpec/Rails/InferredSpecType
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
No |
Yes (Unsafe) |
2.14 |
- |
Identifies redundant spec type.
After setting up rspec-rails, you will have enabled
config.infer_spec_type_from_file_location!
by default in
spec/rails_helper.rb. This cop works in conjunction with this config.
If you disable this config, disable this cop as well.
Safety
This cop is marked as unsafe because
config.infer_spec_type_from_file_location!
may not be enabled.
Examples
# bad
# spec/models/user_spec.rb
RSpec.describe User, type: :model do
end
# good
# spec/models/user_spec.rb
RSpec.describe User do
end
# good
# spec/models/user_spec.rb
RSpec.describe User, type: :common do
end
Inferences
configuration
# .rubocop.yml
# RSpec/Rails/InferredSpecType:
# Inferences:
# services: service
# bad
# spec/services/user_spec.rb
RSpec.describe User, type: :service do
end
# good
# spec/services/user_spec.rb
RSpec.describe User do
end
# good
# spec/services/user_spec.rb
RSpec.describe User, type: :common do
end
Configurable attributes
Name | Default value | Configurable values |
---|---|---|
Inferences |
|
RSpec/Rails/MinitestAssertions
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
Yes |
Yes |
2.17 |
- |
Check if using Minitest matchers.
RSpec/Rails/NegationBeValid
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
No |
Yes (Unsafe) |
2.23 |
- |
Enforces use of be_invalid
or not_to
for negated be_valid.
Safety
This cop is unsafe because it cannot guarantee that
the test target is an instance of ActiveModel::Validations`
.
RSpec/Rails/TravelAround
Enabled by default | Safe | Supports autocorrection | Version Added | Version Changed |
---|---|---|---|---|
Pending |
No |
Yes (Unsafe) |
2.19 |
- |
Prefer to travel in before
rather than around
.