Snelle referentie

Machinist spiekbriefje

Een snelle naslaggids voor Machinist: Ruby fixture-vervangingsbibliotheek, blueprints, object-instantiatie en modelassociaties.

· Gepubliceerd

[!NOTE] Gearchiveerd project: Machinist is sinds 2013 stopgezet. Overweeg voor moderne Ruby on Rails-testfixtures FactoryBot.

Machinist is een fixture-vervangingsbibliotheek voor Ruby waarmee modelblauwdrukken kunnen worden gedefinieerd om dynamisch geldige testinstanties te genereren.

Installatie

Toevoegen aan je Gemfile:

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

Voer bundle en de installatiegenerator uit:

bundle install
rails generate machinist:install

Blueprints definiëren

Definieer standaardeigenschappen met serienummers (sn) om uniciteit te garanderen:

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

# Benoemde blueprint-variant
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Objecten bouwen in tests

# Bouwen in het geheugen zonder op te slaan
user = User.make

# Bouwen en opslaan in de database
user = User.make!

# Overschrijf blueprint-attributen
user = User.make!(name: "David")

# Gebruik een benoemde blueprint
admin = User.make!(:admin)

Associaties

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Belongs-to-associatie
  comments(3)                # Has-many-associatie (genereert 3 items)
  author                     # Detecteert automatisch en roept User.blueprint aan
end

Referenties

Verwante onderwerpen