Ruby on Rails Definire le fabbriche


Esempio

Se si dispone di una classe utente ActiveRecord con attributi di nome ed e-mail, è possibile creare una fabbrica facendo in modo che FactoryGirl lo indovini:

FactoryGirl.define do
  factory :user do # it will guess the User class
    name     "John"
    email    "john@example.com"
  end
end

Oppure puoi renderlo esplicito e persino cambiarne il nome:

FactoryGirl.define do
  factory :user_jack, class: User do
    name     "Jack"
    email    "jack@example.com"
  end
end

Poi nelle tue specifiche puoi usare i metodi di FactoryGirl con questi, in questo modo:

# To create a non saved instance of the User class filled with John's data 
build(:user) 
# and to create a non saved instance of the User class filled with Jack's data
build(:user_jack)

I metodi più comuni sono:

# Build returns a non saved instance
user = build(:user)

# Create returns a saved instance
user = create(:user)

# Attributes_for returns a hash of the attributes used to build an instance
attrs = attributes_for(:user)