Kurzreferenz

Machinist Spickzettel

Ein Schnellreferenz-Leitfaden für Machinist: Ruby Fixture-Ersatzbibliothek, Blueprints, Objekt-Instanziierung und Modell-Assoziationen.

· Veröffentlicht

[!NOTE] Archiviertes Projekt: Machinist wurde seit 2013 eingestellt. Für moderne Testdaten in Ruby on Rails sollten Sie FactoryBot in Betracht ziehen.

Machinist ist eine Fixture-Ersatzbibliothek für Ruby, mit der Sie Modell-Blueprints definieren können, um spontan gültige Testinstanzen zu erzeugen.

Installation

Zu Ihrem Gemfile hinzufügen:

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

Bundle und den Installationsgenerator ausführen:

bundle install
rails generate machinist:install

Blueprints definieren

Standardeigenschaften mithilfe von Seriennummern (sn) definieren, um Eindeutigkeit sicherzustellen:

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

# Benannter Blueprint-Variante
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

Objekte in Tests erstellen

# Im Speicher erstellen ohne zu speichern
user = User.make

# Erstellen und in der Datenbank speichern
user = User.make!

# Blueprint-Attribute überschreiben
user = User.make!(name: "David")

# Einen benannten Blueprint verwenden
admin = User.make!(:admin)

Assoziationen

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Belongs-to-Assoziation
  comments(3)                # Has-many-Assoziation (erzeugt 3 Einträge)
  author                     # Erkennt und ruft User.blueprint automatisch auf
end

Referenzen

Verwandte Themen