Posted almost 9 years ago. Visible to the public. Repeats.
RSpec: Where to put custom matchers and other support code
Custom matchers
Archive
are a useful RSpec feature which you can use to DRY up repetitive expectations in your specs. Unfortunately the default directory structure generated by rspec-rails
has no obvious place to put custom matchers or other support code.
I recommend storing them like this:
Copyspec/support/database_cleaner.rb spec/support/devise.rb spec/support/factory_bot.rb spec/support/matchers/be_allowed_access.rb spec/support/matchers/be_denied_access.rb spec/support/matchers/be_same_second_as.rb
To make this support code available to all specs, put the following into your spec_helper.rb
, above the RSpec.configure
block:
CopyDir[Rails.root.join("spec/support/**/*.rb")].sort.each {|f| require f}
Also see where to put shared example groups.
Your development team has a full backlog of feature requests, chores and refactoring coupled with deadlines? We are familiar with that. With our "DevOps as a Service" offering, we support developer teams with infrastructure and operations expertise.