[!NOTE] Projet archivé: Machinist n'est plus maintenu depuis 2013. Pour les tests modernes en Ruby on Rails, envisagez d'utiliser FactoryBot.
Machinist est une bibliothèque de remplacement de fixtures pour Ruby permettant de définir des blueprints de modèles pour générer instantanément des instances de test valides.
Installation
Ajoutez à votre Gemfile :
group :test do
gem 'machinist', '>= 2.0.0.beta2'
end
Exécutez bundle et le générateur d'installation :
bundle install
rails generate machinist:install
Définition de Blueprints
Définissez les propriétés par défaut à l'aide de numéros de série (sn) pour garantir l'unicité :
User.blueprint do
name { "User #{sn}" }
email { "user-#{sn}@example.com" }
end
# Variante de blueprint nommée
User.blueprint(:admin) do
name { "Admin #{sn}" }
admin { true }
end
Création d'objets dans les tests
# Construire en mémoire sans sauvegarder
user = User.make
# Construire et persister en base de données
user = User.make!
# Surcharger les attributs du blueprint
user = User.make!(name: "David")
# Utiliser un blueprint nommé
admin = User.make!(:admin)
Associations
Post.blueprint do
title { "Post #{sn}" }
author { User.make } # Association belongs-to
comments(3) # Association has-many (génère 3 éléments)
author # Détecte et appelle automatiquement User.blueprint
end