У меня есть следующий набор строк в spec_helper.rb
config.use_transactional_fixtures = true
Это означает, что каждый тест должен очищать после себя. Любое обновление db, сделанное одним тестом, не должно быть рядом для следующего теста.
У меня есть два теста в одном из моих файлов spec.
it 'should update the DB' do
Setting.put('abcd', 'efgh')
end
it 'should not find the DB update' do
Setting.get('abcd').should be_nil
end
Два вышеупомянутых теста, используемых для работы с Rails 3.2.14
Однако после обновления до Rails 4 второй тест завершился с ошибкой,
------
expected: nil
got: "efgh"
-----
У меня из-за этой проблемы из-за ошибки в пакете 100 тестов.
Единственная связанная документация, которую я могу найти для обновления Rails 4, была чем-то довольно неопределенным: "Rails 4.0 не одобряет ActiveRecord:: Fixtures в пользу ActiveRecord:: FixtureSet."
Я не уверен, насколько это важно. Я бы идеально хотел иметь глобальную настройку (config.use_transactional_fixtures = true) и не менять логику тестов (или добавлять дополнительные до (: each)/after (: each) модули только для того, чтобы пройти существующие тесты Пожалуйста, помогите!