OOZOU
تواصلوا معنا
العودة إلى TIL
ruby

يمكنكم استخدام FactoryBot مع نماذج لا تعتمد على ActiveRecord

13 أكتوبر 2020

يمكنكم استخدام الدالة initialize_with في FactoryBot لتهيئة الكائن بالطريقة التي تريدونها، مما يتيح لكم إنشاء factories لأي من كائناتكم كما تشاؤون

FactoryBot.define do
  factory :citizen_id_image, class: CitizenIdImagePresenter do
    image_url { 'https://placehold.it/200x200' }

    initialize_with { new(image_url: image_url) }
  end
end
build(:citizen_id_image)
#=> 

مقدمة

FactoryBot أداة اختبار شائعة لتطبيقات Ruby on Rails تتيح للمطوّرين تعريف بيانات الاختبار (fixtures) وإنشاءها عند الحاجة. وتوفّر طريقة مرنة وفعّالة لإنشاء بيانات الاختبار، مما يسهّل كتابة الاختبارات وصيانتها. نستعرض في هذا المقال كيفية استخدام FactoryBot بفعالية في اختبارات Rails.

إعداد FactoryBot

لإعداد FactoryBot في تطبيق Rails، عليكم إضافة الـ gem المسمّى factory_bot إلى ملف Gemfile وتشغيل الأمر bundle install. بعد ذلك يمكنكم تهيئة FactoryBot بإنشاء ملف factory_bot.rb في المجلد config/initializers. وفي هذا الملف يمكنكم تحديد إعدادات factory_bot، مثل مسارات الـ factories والاستراتيجية الافتراضية.

تعريف النماذج والـ Factories

الـ factory في FactoryBot مخطط لإنشاء كائن. ويمكنكم تعريف factory لنموذج ما بإنشاء ملف في المجلد factories. على سبيل المثال، إذا كان لديكم نموذج User، يمكنكم إنشاء ملف user.rb في المجلد factories لتعريف factory المستخدم. وفي هذا الملف تحددون الخصائص والارتباطات الخاصة بـ factory المستخدم.

خيارات الـ Factory وخصائصها

يوفّر FactoryBot عدة خيارات وخصائص يمكنكم استخدامها لتخصيص الـ factories. على سبيل المثال، يمكنكم استخدام الخاصية class لتحديد صنف الكائن الذي يتم إنشاؤه. ويمكنكم أيضًا استخدام الخيار attributes لتحديد خصائص الـ factory. كما يمكنكم استخدام الخيار association لتحديد الارتباطات بين الـ factories.

الخلاصة

ختامًا، FactoryBot أداة قوية لإنشاء بيانات الاختبار في تطبيقات Rails. وبتعريف factories لنماذجكم، يمكنكم إنشاء بيانات الاختبار بسرعة وكفاءة. وبفضل خيارات الإعداد المرنة والخصائص القابلة للتخصيص، يسهّل FactoryBot كتابة الاختبارات وصيانتها. وباتباع أفضل الممارسات الواردة في هذا المقال، تحققون أقصى استفادة من FactoryBot وترفعون جودة اختباراتكم.

المزيد حول ruby

ruby30 أبريل 2021

السماح بلصق كتل Ruby متعددة الأسطر في Pry عند استخدام النقطة في بداية السطر

أصبحنا نستخدم أسلوب النقطة في بداية السطر كثيرًا الآن، مثلًا

ruby14 أكتوبر 2020

Heredoc بدون استيفاء

أحيانًا تحتاجون إلى استخدام Heredoc في Ruby بدون استيفاء ('#{....}'). يمكنكم تحقيق ذلك بإحاطة الكلمة المفتاحية بعلامتي اقتباس مفردتين:

ruby13 أكتوبر 2020

إنشاء جداول التجزئة الوسيطة تلقائيًا في Ruby

ستُنشأ جميع جداول التجزئة في المستويات الوسيطة تلقائيًا وكأنها بالسحر

هل لديكم فكرة مشروع؟

يسعدنا أن نتعرّف على ما تبنونه.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد