Snabbreferens

Machinist fusklapp

En snabb referensguide för Machinist: Ruby fixture-ersättningsbibliotek, blueprints, objektinstansiering och modellassociationer.

· Publicerad

[!NOTE] Arkiverat projekt: Machinist har lagts ned sedan 2013. För moderna testdata i Ruby on Rails bör du överväga att använda FactoryBot.

Machinist är ett bibliotek för ersättning av testfixturer i Ruby som gör det möjligt att definiera modell-blueprints för att snabbt generera giltiga testinstanser.

Installation

Lägg till i din Gemfile:

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

Kör bundle och installationsgeneratorn:

bundle install
rails generate machinist:install

Definiera Blueprints

Definiera standardattribut med serienummer (sn) för att garantera unikhet:

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

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

Bygga objekt i tester

# Bygg i minnet utan att spara
user = User.make

# Bygg och spara i databasen
user = User.make!

# Åsidosätt blueprint-attribut
user = User.make!(name: "David")

# Använd en namngiven blueprint
admin = User.make!(:admin)

Associationer

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # Belongs-to-association
  comments(3)                # Has-many-association (genererar 3 poster)
  author                     # Upptäcker och anropar User.blueprint automatiskt
end

Referenser

Relaterade ämnen