【问题标题】:Rspec/FactoryGirl: changes in factory not saving in test database?Rspec/FactoryGirl:工厂更改未保存在测试数据库中?
【发布时间】:2016-04-27 00:05:51
【问题描述】:

我为模型定义了以下工厂:

factory :page do
  association :user, factory: :standard_user
  association :post, factory: [:short_post]
  after :create do |model|
    model.post.user = model.user
    model.save!
  end
end

after create 块似乎在运行文件,工厂返回具有正确/新更改的模型对象,但这不会保留在我的测试数据库中。

即。如果我在测试中调用Page.last.post.user.id,我仍然会得到在创建块之前分配给发布对象工厂的旧用户ID。我不确定为什么会这样。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rspec factory-bot


    【解决方案1】:

    您的after :create 回调实际上应该更新post 对象,但是,您正在对page 对象调用save!

    尝试调用model.post.save! 直接将user_id 列保存到post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-18
      • 2011-05-17
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多