testing my Ruby gem: undefined method `configure' for Shoulda::Matchers:Module (NoMethodError)
/app/my_gem/spec/spec_helper.rb:6:in `<top (required)>': undefined method `configure' for Shoulda::Matchers:Module (NoMethodError)
Here is my gemspec:
- Unable to test should belong_to, missing id foreign key on Rails
- when does factory girl create objects in db?
- How do you specify POST params in a Rails test?
- Shoulda rspec matchers :on => :create
- Shoulda validate_format_of . not_with has problem in framework (or in my understanding)
- Capybara issue: @request must be an ActionDispatch::Request
# my_gem.gemspec ... Gem::Specification.new do |spec| ... ... spec.add_development_dependency "activemodel" spec.add_development_dependency "bundler", "~> 1.8" spec.add_development_dependency "cucumber" spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "rspec" spec.add_development_dependency "shoulda-matchers" end
require 'my_gem' require 'pry' require 'shoulda/matchers' Shoulda::Matchers.configure do |config| config.integrate do |with| with.test_framework :rspec # with.library :active_record with.library :active_model # with.library :action_controller # Or, choose all of the above: # with.library :rails end end
It’s finding Shoulda::Matchers but not the
.configure method for some reason. Am I requiring
shoulda wrong somehow? Not sure if this is related, but the rspec is also giving me this warning:
WARN: Unresolved specs during Gem::Specification.reset: json (>= 1.7.7, ~> 1.7) minitest (~> 5.1) WARN: Clearing out unresolved specs. Please report a bug if this causes problems.
Thanks for any pointers!
2 Solutions collect form web for “testing my Ruby gem: undefined method `configure' for Shoulda::Matchers:Module (NoMethodError)”
It looks like you are trying to use the documentation for the 3.0.0.alpha version of shoulda-matchers which supports
3.0.0.alpha, but are using an older version. Either see the correct documentation for the version you are using (I’m guessing 2.8.x) or update your Gemfile to use
gem 'shoulda-matchers', github: 'thoughtbot/shoulda-matchers'
bundle install and
Shoulda::Matchers.configure should start working.
Git protocol is depreciated, now use:
gem 'shoulda-matchers', git: 'https://github.com/thoughtbot/shoulda-matchers.git'