ruby - 有没有办法覆盖创建方法以及构建工厂女孩?

标签 ruby factory-bot

在工厂女孩中,您可以通过指定一个 initialize_with block 来覆盖构建方法,有没有办法使用 create 方法来做到这一点?

看起来当你在 factory girl 中调用 create 时,它​​会在内部调用 #build,然后保存!。但是,我使用的是 API/gem 支持的模型,并调用 #build 然后保存!不会起作用,但确实有持久化的概念。我应该如何覆盖这些工厂的创建?这比覆盖保存要干净得多!

最佳答案

是的,您可以覆盖 to_create。参见 Custom Methods For Persisting Objects在 GETTING_STARTED。

factory :different_orm_model do
  to_create { |instance| instance.persist! }
end

你也可以定义一个custom "strategy" ,这就是 FactoryGirl 对 buildcreate 的调用。

关于ruby - 有没有办法覆盖创建方法以及构建工厂女孩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071171/

相关文章:

ruby-on-rails - 更新范围内的关系?

ruby - Guard 不向 growl 发送 gntp 通知

ruby - 安装 osx mavricsmavrics 的 ruby​​ 1.9.3

ruby-on-rails - 如何使用 Sorcery 测试 FactoryGirl 生成的用户?

Ruby lambda 文字语法

ruby-on-rails - Rails FactoryGirl 错误 "undefined method ` 生成 LoremIpsum :Module (NoMethodError)"

ruby-on-rails - 厂妹——传递协会资料

ruby-on-rails - 如何使用不命中数据库的 Factory Girl 测试 Rails 中的关系?

factory-bot - FactoryGirl to_create 返回值

ruby - 如何将 block 传递给 `instance_eval` -ed block ?