如何在多个文件中建立工厂

问题描述 投票:0回答:1

我有一个供多个库使用的模型,这些库中的每个库都以不同的方式使用它。

目前,我制作了一个工厂文件,其中包含多个子工厂。我的每个库都有一个工厂,因为每个库都需要我的基本模型的不同配置。

我的问题是我的工厂文件太长了,超过400行,我想将其拆分为多个文件,每个库一个。

现在我有这样的东西

# Master file
FactoryBot.define do
  factory :my_model do
    # Some things
    factory :lib_1_test_unit do
      # Some other things
    end
    factory :lib_2_test_unit do
      # Some other things
    end
  end
end

我试图这样定义它:

# New master file
FactoryBot.define do
  factory :my_model do
    # Some things
  end
end
# Subfile 1
  FactoryBot.define do
    factory :lib_1_test_unit do
      # Some other things
    end
  end

但是我遇到了这个错误:

未初始化的常数Lib1TestUnit

如果我将子文件1与factory:my_model封装在一起,则会发生另一个错误,因为无法两次定义它。

我也试图将子文件包含到主文件中,但效果更差

有没有一种方法可以实现我想做的事情?还是我走错了路,也许有更好的实践或另一种方法可以将同一对象测试到不同的库中?

ruby-on-rails ruby rspec factory-bot
1个回答
0
投票

这不是您问题的完整解决方案,更像是一句话。

也许您错过了子文件1中的“ do”。

您有:factory :lib_1_test_unit你需要:factory :lib_1_test_unit do

© www.soinside.com 2019 - 2024. All rights reserved.