0

由于字段的唯一性限制,我在运行工厂时不断收到验证错误。我正在将 shoulda 与 factory_girl 一起使用。我有一个单元测试和一个功能测试,在数据库中创建了 2 个产品。我可以以任何顺序一遍又一遍地运行“rake test:units”和“rake test:functionals”,一切都是绿色的,但是当我运行“rake test”运行单元后跟函数时,由于唯一性而出现错误.

我还尝试创建模型来打破 2 个不同单元测试中的唯一性,然后我也得到了错误。

我一直在 test_helper.rb 中使用这些设置,但无法正常工作

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

transactional_fixtures 设置是否对工厂产生任何影响。在测试之间清理数据库的最佳方法是什么?

4

1 回答 1

1

(叹..)

所以问题是我从 shoulda 文档中复制代码并最终像这样声明我的测试类:

class UserTest < Test::Unit::TestCase

但是,要使事务装置设置产生任何影响,您需要通过声明您的类从 ActiveSupport::TestCase 继承

class UserTest < ActiveSupport::TestCase

希望这可以帮助其他人节省一些时间。

于 2010-03-23T04:52:11.073 回答