[!NOTE] مشروع مؤرشف: تم إيقاف تطوير Machinist منذ عام 2013. لبيئات الاختبار الحديثة في Ruby on Rails، يُنصح باستخدام FactoryBot.
تعد Machinist مكتبة بديلة لتركيبات البيانات (fixtures) في Ruby تتيح تحديد مخططات النماذج لإنشاء كائنات اختبار صالحة على الفور.
التثبيت (Installation)
أضف إلى ملف Gemfile الخاص بك:
group :test do
gem 'machinist', '>= 2.0.0.beta2'
end
قم بتشغيل bundle ومولد التثبيت:
bundle install
rails generate machinist:install
تعريف المخططات (Defining Blueprints)
تحديد الخصائص الافتراضية باستخدام الأرقام التسلسلية (sn) لضمان عدم التكرار:
User.blueprint do
name { "User #{sn}" }
email { "user-#{sn}@example.com" }
end
# مخطط مخصص باسم معين
User.blueprint(:admin) do
name { "Admin #{sn}" }
admin { true }
end
إنشاء الكائنات في الاختبارات
# الإنشاء في الذاكرة دون الحفظ في قاعدة البيانات
user = User.make
# الإنشاء والحفظ في قاعدة البيانات
user = User.make!
# تجاوز سمات المخطط
user = User.make!(name: "David")
# استخدام مخطط مسمى
admin = User.make!(:admin)
العلاقات (Associations)
Post.blueprint do
title { "Post #{sn}" }
author { User.make } # علاقة belongs_to
comments(3) # علاقة has_many (تولد 3 عناصر)
author # يكتشف ويستدعي User.blueprint تلقائياً
end