2012-04-01 4 views
3

RSpecテストで治具データにアクセスしようとしていますが、ロードされていないようです。RSpec 2はどんなフィクスチャをロードしていないようですか?

spec_helper.rb

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

は、これは私の備品の一つである:

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

エラー:

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

今すぐテストがafter_createコールバックを持つユーザーを作成しています:

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

アイデア?

答えて

5

これを試してみてください:

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

はあなたの備品を確認しますが、ディレクトリにあります。 :以前にここにいたページへ

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 

クレジット:

ls -1 db/fixtures 

は、あなたの設定を確認しますhttp://www.etagwerker.com/2011/08/how-to-load-all-fixtures-testing-with-rspec-2-and-rails-3/

テストデータベースが正常に立ち上がることを確認します

rake db:test:prepare 

そして、テスト用のデータベースを見てください。治具が装填されましたか?

+0

ファイルが存在し、構成はまったく同じです。これは 'puts FundType.all' - >' [] 'の出力ですので、レコードはありません。 – Cojones

+0

ERBを削除できますか?このように... term: "2012-04-01"(奇数のスペースやタブ、後ろの空白、または読み取り許可のないファイルも探します) – joelparkerhenderson

+0

いいえ、助けてくれません... – Cojones

関連する問題