Cucumber.js هي أداة شائعة لتشغيل الاختبارات الآلية المكتوبة بلغة واضحة، مما يسمح للمطورين وغير المطورين بالتعاون في الاختبار. إنه مفيد بشكل خاص في التطوير الموجه بالسلوك (BDD)، حيث يعد التواصل الواضح بين أصحاب المصلحة أمرًا أساسيًا. باستخدام لغة يمكن قراءتها بواسطة الإنسان، يتيح Cucumber js لأصحاب المنتجات والمختبرين والمطورين التأكد من أن البرنامج يتصرف كما هو متوقع مع تحسين الجودة الإجمالية للتطبيق.
فهم التنمية المدفوعة بالسلوك (BDD)
تم بناء Cucumber.js حول مبادئ التطوير المبني على السلوك (BDD)، وهو نهج لتطوير البرمجيات يشجع التواصل بين أصحاب المصلحة التقنيين وغير التقنيين. في BDD، تتم كتابة الاختبارات بلغة مشتركة حتى يتمكن جميع أعضاء الفريق من المساهمة في فهم المتطلبات. من خلال التركيز على السلوكيات بدلاً من التفاصيل الفنية، تضمن BDD أن الجميع - بدءًا من محللي الأعمال إلى المطورين - لديهم نفس الفهم لكيفية عمل البرنامج.
يتبع BDD عادة تنسيق "معطى ومتى ثم" لوصف السيناريوهات:
• مُعطى: يحدد السياق الأولي (على سبيل المثال، "نظرًا لأن المستخدم قام بتسجيل الدخول").
• متى: يصف الإجراء أو الحدث (على سبيل المثال، "عندما ينقر المستخدم على زر الإرسال").
• ثم: يحدد النتيجة المتوقعة (على سبيل المثال، "ثم يتم إرسال النموذج").
يستخدم Cucumber.js هذا التنسيق لتمكين اختبار اللغة الطبيعية.
تثبيت وإعداد Cucumber.js
للبدء في استخدام Cucumber.js، ستحتاج إلى تثبيت حزم npm الضرورية وتهيئة مشروعك. يتوفر Cucumber.js كحزمة Node.js، ويمكنك تثبيته بسهولة عبر npm. إليك كيفية إعداده في مشروع Node.js:
السيناريو: تسجيل دخول ناجح باستخدام بيانات اعتماد صالحة
نظرًا لوجود المستخدم في صفحة تسجيل الدخول
عندما يقوم المستخدم بإدخال بيانات اعتماد صالحة
ثم تتم إعادة توجيه المستخدم إلى لوحة التحكم
يمثل كل سيناريو حالة استخدام محددة يجب أن يدعمها البرنامج. الهدف هو كتابة هذه الاختبارات بطريقة يمكن لأعضاء الفريق الفني وغير الفني فهمها بسهولة.
تعريفات الخطوة في Cucumber.js
تعريفات الخطوة هي المكان الذي يتم فيه تعيين خطوات اللغة الطبيعية من ملف الميزة إلى كود JavaScript القابل للتنفيذ. كل خطوة (على سبيل المثال، "نظرًا لوجود المستخدم في صفحة تسجيل الدخول") تتوافق مع طريقة في ملف تعريف الخطوة.
فيما يلي مثال لكيفية تحديد خطوات ميزة تسجيل الدخول:
const { يُعطى، ومتى، ثم } = require('@cucumber/cucumber');
معطى ("المستخدم موجود في صفحة تسجيل الدخول"، الوظيفة () {
// رمز للانتقال إلى صفحة تسجيل الدخول
});
عندما ("يدخل المستخدم بيانات اعتماد صالحة"، الوظيفة () {
// رمز لإدخال اسم مستخدم وكلمة مرور صالحين
});
ثم ("تتم إعادة توجيه المستخدم إلى لوحة التحكم"، الوظيفة () {
// رمز التحقق من إعادة التوجيه إلى لوحة المعلومات
});
تأتي الوظائف المعطى ومتى ثم من الحزمة Cucumber.js، وكل واحدة منها تقوم بتعيين خطوة في السيناريو إلى وظيفة JavaScript التي تنفذ المنطق الضروري.
تشغيل اختبارات Cucumber.js
بمجرد أن تصبح ملفات الميزات وتعريفات الخطوات جاهزة، يمكنك تشغيل Cucumber.js لتنفيذ الاختبارات ورؤية النتائج. في المحطة الطرفية الخاصة بك، ما عليك سوى تشغيل الأمر التالي:
npx الخيار-js
سيقوم Cucumber.js بتحليل ملفات الميزات الخاصة بك، ومطابقة الخطوات مع تعريفات الخطوات المقابلة لها، وتنفيذ الاختبارات. سيُظهر الإخراج السيناريوهات التي تم اجتيازها أو فشلها، مما يمنحك رؤية واضحة لسلوك تطبيقك.
دمج Cucumber.js مع أدوات الاختبار الأخرى
يمكن دمج Cucumber.js مع أطر الاختبار الشائعة مثل Mocha أو Chai لتعزيز وظائف وبنية مجموعة الاختبار الخاصة بك. من خلال الجمع بين Cucumber.js وأطر العمل هذه، يمكنك استخدام مكتبات التأكيد القوية وميزات الاختبار لتحسين عمق اختباراتك.
على سبيل المثال، يمكنك استخدام Chai للتأكيدات في تعريفات الخطوة الخاصة بك:
const {توقع } = يتطلب('chai');
ثم ("تتم إعادة توجيه المستخدم إلى لوحة التحكم"، الوظيفة () {
توقع(الصفحة الحالية).to.equal('dashboard');
});
يمكّنك دمج الأدوات الأخرى من توسيع نطاق Cucumber.js إلى ما هو أبعد من سيناريوهات BDD الأساسية، مما يجعله جزءًا مرنًا من استراتيجية الاختبار الشاملة الخاصة بك.
أفضل الممارسات لكتابة اختبارات BDD التي يمكن صيانتها
للتأكد من أن اختبارات Cucumber.js تظل قابلة للصيانة وقابلة للتطوير، من المهم اتباع بعض أفضل الممارسات عند كتابة اختباراتك:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3