由于字段的唯一性限制,我在运行工厂时不断收到验证错误。我正在使用带有factory_girl的shoulda。我有一个单元测试和一个功能测试,在数据库中创建了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设置是否会影响工厂。什么是在测试之间处理数据库清理的最佳方法?
答案 0 :(得分:1)
(叹气..)
所以问题是我从shoulda文档复制代码并最终声明我的测试类如下:
class UserTest < Test::Unit::TestCase
但是,为了使事务夹具设置产生任何效果,您需要通过声明类来继承ActiveSupport :: TestCase
class UserTest < ActiveSupport::TestCase
希望这可以帮助拯救别人一段时间。