Riferimento rapido

Guida rapida a Machinist

Guida di riferimento rapido a Machinist: libreria di sostituzione delle fixture in Ruby, blueprint, istanziazione di oggetti e associazioni di modelli.

· Pubblicato

[!NOTE] Progetto archiviato: Machinist è stato dismesso dal 2013. Per i test moderni in Ruby on Rails, valuta l'uso di FactoryBot.

Machinist è una libreria di sostituzione delle fixture per Ruby che consente di definire blueprint di modelli per generare al volo istanze di test valide.

Installazione

Aggiungi al tuo Gemfile:

group :test do
  gem 'machinist', '>= 2.0.0.beta2'
end

Esegui bundle e il generatore di installazione:

bundle install
rails generate machinist:install

Definizione dei Blueprint

Definisci le proprietà predefinite utilizzando numeri di serie (sn) per garantire l'univocità:

User.blueprint do
  name  { "User #{sn}" }
  email { "user-#{sn}@example.com" }
end

# Variante di blueprint con nome
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Creazione di oggetti nei test

# Costruisci in memoria senza salvare
user = User.make

# Costruisci e salva nel database
user = User.make!

# Sovrascrivi gli attributi del blueprint
user = User.make!(name: "David")

# Usa un blueprint con nome
admin = User.make!(:admin)

Associazioni

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Associazione belongs-to
  comments(3)                # Associazione has-many (genera 3 elementi)
  author                     # Rileva automaticamente e invoca User.blueprint
end

Riferimenti

Argomenti correlati