Фабричная девушка создавала объекты, не очищающиеся между тестами? - PullRequest
3 голосов
/ 13 августа 2010

Меня задерживают при внедрении тестов с небольшим замешательством.С помощью User.create я могу создавать и сохранять в нескольких тестах:

should "test something" do
  u1 = User.create(:first_name => "Fred", :last_name => "Flintstone")
  assert true
end

should "test something else" do
  u1 = User.create(:first_name => "Fred", :last_name => "Flintstone")
  assert true
end

, но с использованием Factory.create выдает ошибку записи дубликата ActiveRecord:

should "test something" do
  Factory.create(:amanda_levy)
  assert true
end

should "test something else" do
  Factory.create(:amanda_levy)
  assert true
end

Ошибка: "ActiveRecord:: StatementInvalid: Mysql :: Ошибка: повторяющаяся запись "

Что дает?

1 Ответ

1 голос
/ 13 августа 2010

У вас есть следующая строка в вашем spec_helper:

config.use_transactional_fixtures = true

, которая говорит rspec / test :: unit начинать транзакцию в начале каждого тестового случая и выполнять откат после его завершения.

...