Shared example groups
Show archive.org snapshot
are a useful RSpec feature. Unfortunately the default directory structure generated by rspec-rails
has no obvious place to put them.
I recommend storing them like this:
spec/models/shared_examples/foo.rb
spec/models/shared_examples/bar.rb
spec/models/shared_examples/baz.rb
spec/controllers/shared_examples/foo.rb
spec/controllers/shared_examples/bar.rb
spec/controllers/shared_examples/baz.rb
To make those shared examples available to all specs, put the following into your spec_helper.rb
(for rails 4 in rails_helper.rb
), above the RSpec.configure
block:
Dir[Rails.root.join("spec/models/shared_examples/**/*.rb")].each {|f| require f}
Dir[Rails.root.join("spec/controllers/shared_examples/**/*.rb")].each {|f| require f}
Make sure you don't call your examples files like ..._spec.rb
, else RSpec will believe they're actual spec files and require them.
Also see where to put custom matchers and other support code.
Posted by Henning Koch to makandra dev (2013-08-20 09:35)