【问题标题】:Rails testing with factories. Transactional uniqueness problem与工厂进行 Rails 测试。事务唯一性问题
【发布时间】:2010-03-22 10:37:11
【问题描述】:

由于字段的唯一性限制,我在运行工厂时不断收到验证错误。我正在将 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 设置是否对工厂产生任何影响。在测试之间清理数据库的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails testing transactions shoulda


    【解决方案1】:

    (叹气..)

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

    class UserTest < Test::Unit::TestCase
    

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

    class UserTest < ActiveSupport::TestCase
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2011-06-23
      相关资源
      最近更新 更多