Тестирование Rails с фабриками. Проблема уникальности транзакций

Я продолжаю получать ошибки проверки при запуске фабрик из-за ограничений уникальности полей. Я использую shoulda с factory_girl. У меня есть как модульный тест, так и функциональный тест, создающий 2 продукта в базе данных. Я могу запускать rake test:units и rake test:functionals снова и снова в любом порядке, и все будет зеленым, но когда я запускаю rake test, который запускает модули, за которыми следуют функционалы, я получаю ошибки из-за уникальности .

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

Я играл с этими настройками в test_helper.rb, но ничего не могу заставить работать

class ActiveSupport::TestCase
  self.use_transactional_fixtures = true
  self.use_instantiated_fixtures  = false
end

Влияет ли настройка transactional_fixtures на фабрики. Как лучше всего справиться с очисткой базы данных между тестами?


person crayment    schedule 22.03.2010    source источник


Ответы (1)


(вздох..)

Итак, проблема заключалась в том, что я копировал код из документации shoulda и в итоге объявил свои тестовые классы следующим образом:

class UserTest < Test::Unit::TestCase

Однако для того, чтобы настройка транзакционных фикстур имела какой-либо эффект, вам необходимо наследоваться от ActiveSupport::TestCase, объявив свои классы

class UserTest < ActiveSupport::TestCase

Надеюсь, это поможет сэкономить кому-то время.

person crayment    schedule 23.03.2010