是否可以覆盖现有 Spree 工厂的部分内容?

Is it possible to override parts of an exisiting Spree factory?

我正在构建一个 Spree 商务应用程序,并且在我的规范中使用 gem 提供的工厂。但是,我发现自己需要覆盖特定工厂的某些属性以满足我的应用程序需求。

示例:Spree 定义的User 工厂密码为6 个字符。我的应用程序至少需要 8 个。如何在不编写全新工厂的情况下覆盖 password 属性?

哇!原来我没有用谷歌搜索正确的词。事实上,modify factories 非常容易,如文档中所述。

FactoryGirl.modify do
  factory :user do
    password 'password
  end
end

在这种特殊情况下,我必须通过添加以下内容来确保之前加载的 Spree 工厂:

require 'spree/testing_support/factories'