Referencia rápida

Chuleta de Machinist

Guía rápida para Machinist: biblioteca de reemplazo de fixtures en Ruby, blueprints, instanciación de objetos y asociaciones.

· Publicado

[!NOTE] Proyecto Archivado: Machinist ha sido descontinuado desde 2013. Para pruebas modernas en Ruby on Rails, considera utilizar FactoryBot.

Machinist es una biblioteca de reemplazo de fixtures para Ruby que permite definir blueprints de modelos para generar instancias de prueba válidas al vuelo.

Instalación

Añade a tu Gemfile:

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

Ejecuta bundle y el generador de instalación:

bundle install
rails generate machinist:install

Definición de Blueprints

Define propiedades predeterminadas utilizando números de serie (sn) para garantizar la unicidad:

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

# Blueprint variante con nombre
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Construcción de Objetos en Pruebas

# Construir en memoria sin guardar
user = User.make

# Construir y persistir en la base de datos
user = User.make!

# Sobrescribir atributos del blueprint
user = User.make!(name: "David")

# Usar un blueprint con nombre
admin = User.make!(:admin)

Asociaciones

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Asociación belongs-to
  comments(3)                # Asociación has-many (genera 3 elementos)
  author                     # Detecta automáticamente y llama a User.blueprint
end

Referencias

Temas relacionados