"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Cucumber.js: دليل كامل للاختبار المبني على السلوك

Cucumber.js: دليل كامل للاختبار المبني على السلوك

تم النشر بتاريخ 2024-11-09
تصفح:959

Cucumber.js: A Complete Guide to Behavior-Driven Testing
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:

  1. تثبيت Cucumber.js: سحق نسخ الرمز تثبيت npm --save-dev @cucumber/cucumber
  2. تكوين مشروعك: قم بإنشاء بنية مجلد لملفات الميزات وتعريفات الخطوات. على سبيل المثال: بيرل نسخ الرمز ├── الميزات │ ├── تعريفات الخطوة │ └── my-feature.feature بعد التثبيت، تصبح جاهزًا لكتابة ملف الميزة الأول وإنشاء تعريفات الخطوات المقابلة. كتابة ملفك المميز الأول أحد العناصر الأساسية في Cucumber.js هو ملف الميزات، حيث تتم كتابة الاختبارات باللغة الإنجليزية البسيطة باستخدام بناء جملة Gherkin. تصف ملفات الميزات سلوك التطبيق في سيناريوهات مكتوبة من منظور المستخدم. فيما يلي مثال لملف ميزة بسيط يختبر وظيفة تسجيل الدخول: الميزة: وظيفة تسجيل الدخول

السيناريو: تسجيل دخول ناجح باستخدام بيانات اعتماد صالحة
نظرًا لوجود المستخدم في صفحة تسجيل الدخول
عندما يقوم المستخدم بإدخال بيانات اعتماد صالحة
ثم تتم إعادة توجيه المستخدم إلى لوحة التحكم
يمثل كل سيناريو حالة استخدام محددة يجب أن يدعمها البرنامج. الهدف هو كتابة هذه الاختبارات بطريقة يمكن لأعضاء الفريق الفني وغير الفني فهمها بسهولة.
تعريفات الخطوة في 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 تظل قابلة للصيانة وقابلة للتطوير، من المهم اتباع بعض أفضل الممارسات عند كتابة اختباراتك:

  1. اكتب سيناريوهات صغيرة ومستقلة: يجب أن يختبر كل سيناريو سلوكًا معينًا ويجب ألا يعتمد على سيناريوهات أخرى. وهذا يجعل اختباراتك أسهل في الفهم والصيانة.
  2. تجنب تعريفات الخطوات المعقدة للغاية: يجب أن تظل تعريفات الخطوات مركزة وموجزة. إذا كانت الخطوة تتطلب الكثير من المنطق، فكر في تقسيمها إلى خطوات أصغر أو إعادة هيكلة التعليمات البرمجية الخاصة بك.
  3. إعادة استخدام الخطوات عبر السيناريوهات: حيثما أمكن، قم بإعادة استخدام تعريفات الخطوات عبر سيناريوهات مختلفة لتقليل التكرار وتحسين الاتساق.
  4. حافظ على سهولة فهم ملفات الميزات: اكتب ملفات الميزات بطريقة يمكن فهمها بسهولة من قبل كل من المطورين وأعضاء الفريق غير التقنيين. تعمل السيناريوهات الواضحة والوصفية على تحسين التواصل عبر الفريق. خاتمة يوفر Cucumber.js طريقة قوية لسد الفجوة بين المطورين والمختبرين وأصحاب المصلحة من خلال تقديم تنسيق بسيط ومفهوم لكتابة الاختبارات. باستخدام Cucumber.js ضمن إطار عمل BDD، يمكنك التأكد من أن اختباراتك تتوافق بشكل وثيق مع متطلبات العمل وأن جميع أعضاء الفريق لديهم فهم مشترك لكيفية تصرف التطبيق. سواء كنت تختبر مكونات صغيرة أو مسارات عمل معقدة، فإن Cucumber.js يساعدك على كتابة اختبارات أكثر وضوحًا وفعالية تساهم في نجاح مشروعك البرمجي.
بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/keploy/cucumberjs-a-complete-guide-to-behavior-driven-testing-12h1?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3