2015-04-14 5 views
5

Ich arbeite an meinem ersten Ruby-Juwel und habe Gurken-, RSPC- und SEPA-Matches zum Testen gebündelt. Wenn ich rspec laufen lasse, erhalte ich folgende Fehlermeldung:mein Ruby-Juwel testen: undefinierte Methode `configure 'für Shoulda :: Matcher: Modul (NoMethodError)

/app/my_gem/spec/spec_helper.rb:6:in `<top (required)>': undefined method `configure' for Shoulda::Matchers:Module (NoMethodError) 

Hier ist meine gemspec:

# 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 

Mein spec_helper.rb:

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 

Es finden Shoulda :: Matchers aber nicht die .configure Methode aus irgendeinem Grund. Benötige ich shoulda irgendwie falsch? Nicht sicher, ob das verwandt ist, aber die rspec gibt mir auch diese Warnung:

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. 

Danke für alle Hinweise!

Antwort

10

Es sieht so aus, als ob Sie versuchen, die Dokumentation für die Version 3.0.0.alpha von shofa-matchers zu verwenden, die 3.0.0.alpha unterstützt, aber eine ältere Version verwenden. sehen entweder die korrekte Dokumentation für die Version, die Sie verwenden (ich vermute 2.8.x) oder aktualisieren Sie Ihre Gemfile 3.0.0.alpha zu verwenden:

gem 'shoulda-matchers', github: 'thoughtbot/shoulda-matchers' 

Dann bundle install laufen und Shoulda::Matchers.configure sollte anfangen zu arbeiten.

+1

Danke, waren Sie hier genau richtig. Ich benutze 2.8.0 und der configure-Block ist nicht notwendig – sixty4bit

+0

es ist falsch geschrieben, dauerte eine Weile, um herauszufinden, einen Fehler beim Ausführen von Bundle installieren – Katarzyna

Verwandte Themen