مرجع سريع

ورقة غش Machinist

دليل مرجعي سريع لمكتبة Machinist في Ruby: بديل التركيبات، إنشاء المخططات (blueprints)، توليد الكائنات، وعلاقات النماذج.

· تاريخ النشر

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

مراجع

موضوعات ذات صلة