RSpec 2 не загружает какие-либо приборы? - PullRequest
3 голосов
/ 01 апреля 2012

Я пытаюсь получить доступ к данным приборов в моих тестах RSpec, но, похоже, не загружаю их.

spec_helper.rb

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

Это одно из моих приспособлений:

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

Теперь тест создает пользователя с обратным вызовом after_create:

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

Ошибка:

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

Есть идеи?

1 Ответ

5 голосов
/ 01 апреля 2012

Попробуйте это:

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

Убедитесь, что ваши приборы находятся в каталоге:

 ls -1 db/fixtures

Проверьте вашу конфигурацию:

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

Кредит на страницу, которая была ранее здесь: http://www.etagwerker.com/2011/08/how-to-load-all-fixtures-testing-with-rspec-2-and-rails-3/

Убедитесь, что тестовая база данных работает правильно:

 rake db:test:prepare

Тогда посмотрите на тестовую базу данных. Приборы были загружены?

...