Referência rápida

Guia de referência do Machinist

Guia rápido para Machinist: biblioteca substituta de fixtures em Ruby, blueprints, instanciação de objetos e associações.

· Publicado

[!NOTE] Projeto Arquivado: O Machinist foi descontinuado desde 2013. Para fixtures de teste modernos em Ruby on Rails, considere usar o FactoryBot.

O Machinist é uma biblioteca que substitui fixtures no Ruby, permitindo definir blueprints de modelos para gerar instâncias de teste válidas rapidamente.

Instalação

Adicione ao seu Gemfile:

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

Execute bundle e o gerador de instalação:

bundle install
rails generate machinist:install

Definição de Blueprints

Defina propriedades padrão usando números de série (sn) para garantir exclusividade:

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

# Variante nomeada de blueprint
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Construindo Objetos em Testes

# Criar em memória sem salvar
user = User.make

# Criar e persistir no banco de dados
user = User.make!

# Sobrescrever atributos do blueprint
user = User.make!(name: "David")

# Usar um blueprint nomeado
admin = User.make!(:admin)

Associações

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Associação belongs-to
  comments(3)                # Associação has-many (gera 3 itens)
  author                     # Detecta e chama User.blueprint automaticamente
end

Referências

Temas relacionados