Module: RSpec::Rails::Matchers
- Included in:
- RailsExampleGroup
- Defined in:
- lib/rspec/rails/matchers.rb,
lib/rspec/rails/matchers/be_a_new.rb,
lib/rspec/rails/matchers/be_valid.rb,
lib/rspec/rails/matchers/active_job.rb,
lib/rspec/rails/matchers/redirect_to.rb,
lib/rspec/rails/matchers/have_rendered.rb,
lib/rspec/rails/matchers/be_new_record.rb,
lib/rspec/rails/matchers/routing_matchers.rb,
lib/rspec/rails/matchers/have_http_status.rb
Overview
Container module for Rails specific matchers.
Defined Under Namespace
Modules: ActiveJob, HaveHttpStatus, RedirectTo, RenderTemplate, RoutingMatchers Classes: BeANew
Instance Method Summary (collapse)
-
- (Object) be_a_new(model_class)
Passes if actual is an instance of
model_classand returnsfalseforpersisted?. -
- (Object) be_new_record
Passes if actual returns
falseforpersisted?. -
- (Object) be_valid(*args)
Passes if the given model instance's
valid?method is true, meaning all of theActiveModel::Validationspassed and no errors exist. -
- (Object) have_been_enqueued
Passes if a job has been enqueued.
-
- (Object) have_enqueued_job(job = nil)
(also: #enqueue_job)
Passes if a job has been enqueued inside block.
-
- (Object) have_http_status(target)
Passes if
responsehas a matching HTTP status code.
Instance Method Details
- (Object) be_a_new(model_class)
Passes if actual is an instance of model_class and returns false for
persisted?. Typically used to specify instance variables assigned to
views by controller actions
Use the with method to specify the specific attributes to match on the
new record.
77 78 79 |
# File 'lib/rspec/rails/matchers/be_a_new.rb', line 77 def be_a_new(model_class) BeANew.new(model_class) end |
- (Object) be_new_record
Passes if actual returns false for persisted?.
25 26 27 |
# File 'lib/rspec/rails/matchers/be_new_record.rb', line 25 def be_new_record BeANewRecord.new end |
- (Object) be_valid(*args)
Passes if the given model instance's valid? method is true, meaning
all of the ActiveModel::Validations passed and no errors exist. If a
message is not given, a default message is shown listing each error.
44 45 46 |
# File 'lib/rspec/rails/matchers/be_valid.rb', line 44 def be_valid(*args) BeValid.new(*args) end |
- (Object) have_been_enqueued
Passes if a job has been enqueued. May chain at_least, at_most or exactly to specify a number of times.
235 236 237 238 |
# File 'lib/rspec/rails/matchers/active_job.rb', line 235 def have_been_enqueued check_active_job_adapter ActiveJob::HaveBeenEnqueued.new end |
- (Object) have_enqueued_job(job = nil) Also known as: enqueue_job
Passes if a job has been enqueued inside block. May chain at_least, at_most or exactly to specify a number of times.
203 204 205 206 |
# File 'lib/rspec/rails/matchers/active_job.rb', line 203 def have_enqueued_job(job = nil) check_active_job_adapter ActiveJob::HaveEnqueuedJob.new(job) end |
- (Object) have_http_status(target)
Passes if response has a matching HTTP status code.
The following symbolic status codes are allowed:
Rack::Utils::SYMBOL_TO_STATUS_CODE- One of the defined
ActionDispatch::TestResponsealiases::error:missing:redirect:success
358 359 360 361 |
# File 'lib/rspec/rails/matchers/have_http_status.rb', line 358 def have_http_status(target) raise ArgumentError, "Invalid HTTP status: nil" unless target HaveHttpStatus.matcher_for_status(target) end |