Référence rapide

Aide-mémoire Machinist

Un guide de référence rapide pour Machinist : bibliothèque de remplacement de fixtures en Ruby, blueprints, instanciation d'objets et associations.

· Publié le

[!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

Références

Sujets associés