Подтвердить что ты не робот

Может ли FactoryGirl генерировать фабрики после того, как ваши модели были созданы?

При включении gemfile factory_girl_rails в ваш dev и тестовые блоки в Gemfile, рельсы автоматически сгенерируют фабрики при создании ваших моделей.

Есть ли способ генерировать фабрики после того, как ваши модели были сгенерированы?


Эдуардо Сантана ОТВЕТ ДОЛЖЕН БЫТЬ ПРАВИЛЬНО

4b9b3361

Ответ 1

Опция --fixture-replacement позволяет вам указывать рельсы, что нужно генерировать для создания тестовых данных. Вы можете установить это значение по умолчанию в вашем файле config/application.rb, например:

config.generators do |g|
  g.fixture_replacement :factory_girl
end

Ответ 2

Во-первых, посмотрите исходный проект, чтобы узнать, как он был реализован:

https://github.com/thoughtbot/factory_girl_rails/blob/master/lib/generators/factory_girl/model/model_generator.rb

После этого попытайтесь угадать, как это работает:

rails g factory_girl:model Car name speed:integer

Результат:

create  test/factories/cars.rb

И содержимое:

# Read about factories at https://github.com/thoughtbot/factory_girl

FactoryGirl.define do
   factory :car do
     name "MyString"
     speed 1
   end
end

Помните, что когда вы используете рельсы g, вы всегда можете его отменить, с рельсами d

rails d factory_girl:model Car name speed:integer

Ответ 4

Это не ответ, но поскольку я еще не могу прокомментировать: Я думаю, вы можете использовать это, чтобы решить часть своей проблемы. Вы можете использовать драгоценный камень, называемый schema_to_scaffold, для создания командной строки factory_girl: model. Он выводит:

rails generate factory_girl: пользователи модели fname: string lname: string bdate: date email: string encrypted_password: string

из вашего schema.rb или вашего переименованного schema.rb.

Отметьте здесь или здесь

Ответ 5

Некоторые хорошие ответы здесь, но другой вариант - использовать stepford. Для некоторых проектов, которые используют схемы с ограничениями внешнего ключа, методы deep_ * и т.д. Могут помочь, и это простой способ генерации заводов через командную строку.