2012-04-01 7 views
3

J'essaie d'accéder aux données de l'appareil dans mes tests RSpec mais je ne semble pas en charger.RSpec 2 ne semble charger aucun appareil

spec_helper.rb

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

C'est l'un de mes accessoires:

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

maintenant un test crée un utilisateur qui a un rappel 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?

Répondre

5

Essayez ceci:

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

Vérifiez vos appareils 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 auparavant ici: http://www.etagwerker.com/2011/08/how-to-load-all-fixtures-testing-with-rspec-2-and-rails-3/

Vérifiez votre base de données de test est correctement:

rake db:test:prepare 

Ensuite, regardez la base de données de test. Les appareils ont-ils été chargés?

+0

Le fichier existe, la configuration est exactement la même. C'est la sortie de 'puts FundType.all' ->' [] 'donc il n'y a pas d'enregistrements. – Cojones

+0

Pouvez-vous essayer de supprimer l'ERB? Donc, comme ça ... terme: "2012-04-01" (Recherchez aussi les bizarreries comme les espacements impairs ou les tabulations, ou les espaces de fin, ou les fichiers sans autorisation de lecture) – joelparkerhenderson

+0

Nope, n'aide pas ... – Cojones

Questions connexes