3 votes

RSpec 2 ne semble pas charger les montages ?

J'essaie d'accéder aux données de fixation dans mes tests RSpec, mais je n'arrive pas à en charger.

spec_helper.rb

config.fixture_path = "#{::Rails.root}/db/fixtures"
config.use_transactional_fixtures = true
config.global_fixtures = :all

C'est un de mes appareils :

cash:
  name: cash
  interest: 1
  term: <%= Time.now.to_s :db %>

Maintenant, un test est en train de créer un utilisateur qui a un callback after_create :

ft = FundType.find_by_name("cash")
Fund.create(fund_type_id: ft.id, amount: 1000) <--- this is where the error occurs

Erreur :

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id>

Des idées ?

5voto

joelparkerhenderson Points 10128

Essayez ça :

ft = FundType.find_by_name("cash")
puts ft
puts ft.id

Vérifiez que vos montages sont dans le répertoire :

 ls -1 db/fixtures

Vérifiez votre configuration :

RSpec.configure do |config|
  config.mock_with :rspec
  config.fixture_path = "#{::Rails.root}/db/fixtures"
  config.use_transactional_fixtures = true
  config.global_fixtures = :all
end

Crédit à la page qui était précédemment ici : http://www.etagwerker.com/2011/08/how-to-load-all-fixtures-testing-with-rspec-2-and-rails-3/

Vérifiez que votre base de données de test s'affiche correctement :

 rake db:test:prepare

Regardez ensuite la base de données de test. Les montages ont-ils été chargés ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X