J'ai configuré Rspec2 beta5 et shoulda comme suit pour utiliser les macros de shoulda dans les tests du modèle rspec.macros de shoulda avec rspec2 beta 5 et rails3 beta2
=================Mise à jour 2011-Feb-18
Maintenant, nous pouvons utiliser Shoulda-matchers hors de la boîte.
Ajoutez juste gem shoulda-matchers
dans votre Gemfile et rien d'autre dans spec_helper ou n'importe quel hack. Ça fonctionne juste.
Gemfile
group :test do
gem "rspec", ">= 2.0.0.beta.4"
gem "rspec-rails", ">= 2.0.0.beta.4"
gem 'shoulda', :git => 'git://github.com/bmaddy/
shoulda.git'
gem "faker"
gem "machinist"
gem "pickle", :git => 'git://github.com/codegram/
pickle.git'
gem 'capybara', :git => 'git://github.com/jnicklas/
capybara.git'
gem 'database_cleaner', :git => 'git://github.com/bmabey/
database_cleaner.git'
gem 'cucumber-rails', :git => 'git://github.com/aslakhellesoy/
cucumber-rails.git'
end
spec_helper.rb
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
require 'shoulda'
Rspec.configure do |config|
spécifications/modèles/outlet_spec.rb
require 'spec_helper'
describe Outlet do
it { should validate_presence_of(:name) }
end
Et quand je lance la spécification, j'obtiens l'erreur suivante.
[~/rails_apps/rails3_apps/automation (master)⚡] ➔ spec spec/models/
outlet_spec.rb
DEPRECATION WARNING: RAILS_ROOT is deprecated! Use Rails.root instead.
(called from join at /home/millisami/.rvm/gems/ruby-1.9.1-p378%rails3/
bundler/gems/shoulda-87e75311f83548760114cd4188afa4f83fecdc22-master/
lib/shoulda/autoload_macros.rb:40)
F
1) Outlet
Failure/Error: it { should validate_presence_of(:name) }
undefined method `validate_presence_of' for
#<Rspec::Core::ExampleGroup::Nested_1:0xc4dc138 @__memoized={}>
# ./spec/models/outlet_spec.rb:4:in `block (2 levels) in <top
(required)>'
Finished in 0.0399 seconds
1 example, 1 failures
[~/rails_apps/rails3_apps/automation (master)⚡] ➔
Pourquoi la "méthode non définie" ?? Est-ce que le shoulda est chargé?
Même chose ici. Avez-vous déjà découvert pourquoi? –
Nop, j'ai abandonné shoulda et commencé avec rspec-rails. – Autodidact