Referință rapidă

Fișă de referință Machinist

Ghid rapid de referință pentru Machinist: bibliotecă de înlocuire a fixture-urilor în Ruby, blueprints, instanțierea obiectelor și asocieri.

· Publicat

[!NOTE] Proiect arhivat: Machinist a fost întrerupt din 2013. Pentru date de testare moderne în Ruby on Rails, luați în considerare utilizarea FactoryBot.

Machinist este o bibliotecă de înlocuire a fixture-urilor pentru Ruby care permite definirea de blueprints pentru a genera instantaneu instanțe valide de testare.

Instalare

Adăugați în fișierul Gemfile:

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

Rulați bundle și generatorul de instalare:

bundle install
rails generate machinist:install

Definirea Blueprint-urilor

Definiți proprietățile implicite folosind numere seriale (sn) pentru a garanta unicitatea:

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

# Variantă numită de blueprint
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Construirea obiectelor în teste

# Construire în memorie fără salvare
user = User.make

# Construire și persistență în baza de date
user = User.make!

# Suprascrierea atributelor din blueprint
user = User.make!(name: "David")

# Utilizarea unui blueprint numit
admin = User.make!(:admin)

Asocieri (Associations)

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Asociere belongs-to
  comments(3)                # Asociere has-many (generează 3 elemente)
  author                     # Detectează automat și apelează User.blueprint
end

Referințe

Subiecte conexe