Rspec/FactoryGirl: 工厂中的更改没有保存在测试数据库中?
Rspec/FactoryGirl: changes in factory not saving in test database?
我为模型定义了以下工厂:
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
创建后的块似乎 运行 文件和工厂 returns 具有 correct/new 更改的模型对象但是这不会在我的测试数据库中持续存在。
即。如果我从我的测试中调用 Page.last.post.user.id
,我仍然会得到旧用户 ID,它在 after create 块之前分配给 post 对象工厂。我不确定为什么会这样。
您的 after :create
回调实际上应该更新 post
对象,但是,您在 page
对象上调用 save!
。
尝试调用 model.post.save!
直接保存 post
上的 user_id
列。
我为模型定义了以下工厂:
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
创建后的块似乎 运行 文件和工厂 returns 具有 correct/new 更改的模型对象但是这不会在我的测试数据库中持续存在。
即。如果我从我的测试中调用 Page.last.post.user.id
,我仍然会得到旧用户 ID,它在 after create 块之前分配给 post 对象工厂。我不确定为什么会这样。
您的 after :create
回调实际上应该更新 post
对象,但是,您在 page
对象上调用 save!
。
尝试调用 model.post.save!
直接保存 post
上的 user_id
列。