Как создать фабрику в нескольких файлах - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть модель, которая используется несколькими библиотеками, каждая из этих библиотек использует ее по-разному.

На данный момент я создал заводской файл, который содержит несколько подфакторий.Для каждой из моих библиотек существует одна фабрика, потому что каждой библиотеке нужна своя конфигурация моей базовой модели.

Проблема, с которой я столкнулся, состоит в том, что мой файл фабрики слишком длинный, 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 с фабрикой: my_model, я получу другую ошибку, потому что могуне определяю его дважды.

Я также пытался включить подфайлы в мастер, но эта работа еще меньше

Есть ли способ достичь того, что я хочу сделать?Или я шел по неверному пути, и, может быть, есть лучшая практика или другой способ проверить один и тот же объект на разных библиотеках?

1 Ответ

0 голосов
/ 27 сентября 2019

Это не полное решение вашей проблемы, больше похоже на замечание.

Возможно, вы пропустите "do" в подфайле 1.

У вас есть: factory :lib_1_test_unit Вам нужно: factory :lib_1_test_unit do

...