تكرار السؤال: …
الإجابة المختصرة
هو تطور لـ TDD يهدف لتوحيد لغة التواصل بين المطورين ومحللي الأعمال باستخدام لغة دومين موحدة (Ubiquitous Language)، مع صياغة سيناريوهات الاختبار بصيغة Given (السياق) و When (الحدث) و Then (النتيجة المتوقعة).
الشرح
تساعد صيغة Given-When-Then في جعل مواصفات الاختبار مفهومة لجميع الأطراف المعنية (مثل استخدام ملفات Gherkin في أدوات Cucumber). تصف Given الحالة الابتدائية للنظام (المستخدم مسجل دخول ورصيده 100)، وتصف When الإجراء الذي اتخذه المستخدم (قام بسحب 40)، وتصف Then الحالة النهائية للنظام (يصبح رصيده 60 ويتم إصدار إشعار بالسحب). هذا يضمن أن الفريق يبني الشيء الصحيح المطلوب للأعمال.
مثال بالكود
Scenario: Successful withdrawal
Given a customer with balance of $100
When they request to withdraw $40
Then the remaining balance should be $60
And they should receive $40 cashأخطاء شائعة
- كتابة تفاصيل تقنية سطحية في سيناريوهات BDD (مثل: Given I click on button with id #submit_btn)، مما يفقدها هدفها الدوميني.