كيفية استخدام مولّد انتقالات الحالات
- اكتب انتقالاً واحداً في كل سطر؛ وتكون الحالة الأولى هي الحالة الابتدائية.
- اختر تغطية 0-switch أو 1-switch، وما إذا كنت تريد تضمين اختبارات الانتقالات غير الصالحة.
- ولّد للحصول على جدول الحالات ومخطط Mermaid وحالات الاختبار.
مزايا مولّد انتقالات الحالات
- الانتقالات بصيغة "State --event--> State" مع شروط حراسة (guards) اختيارية
- جدول الحالة × الحدث يعرض الأهداف الصالحة والتركيبات غير الصالحة
- حالات اختبار لتغطية 0-switch و1-switch
- اختبارات سلبية لكل انتقال غير صالح
- تحذيرات للحالات التي لا يمكن الوصول إليها وغياب الحالة النهائية
- نص Mermaid بصيغة stateDiagram-v2 للتوثيق
مثال على مولّد انتقالات الحالات
سير عمل الطلب
الإدخال:
New --pay--> Paid
Paid --ship--> Shipped
Shipped --deliver--> Delivered
New --cancel--> Cancelledالنتيجة:
ST-001 New —pay→ Paid positive
ST-005 New —pay→ Paid —ship→ Shipped positive (1-switch)
ST-008 Invalid: "ship" while in New negative
stateDiagram-v2
[*] --> New
New --> Paid: pay
Paid --> Shipped: shipالأسئلة الشائعة حول مولّد انتقالات الحالات
كيف أكتب الانتقالات؟
انتقال واحد في كل سطر بصيغة "State --event--> State". وتوضع شروط الحراسة بين قوسين معقوفين ("Delivered --return [within 14 days]--> Returned"). وتكون أول حالة مذكورة هي الحالة الابتدائية.
ما تغطية 0-switch و1-switch؟
تختبر تغطية 0-switch كل انتقال منفرد. وتختبر تغطية 1-switch كل زوج صالح من الانتقالات المتتالية، مما يكشف الأخطاء التي لا تظهر إلا بعد تسلسل معيّن.
ما اختبارات الانتقالات غير الصالحة؟
لكل تركيبة حالة × حدث ليس لها انتقال معرَّف، يتحقق اختبار سلبي من رفض الحدث وعدم تغيّر الحالة — وهو المصدر الأكثر شيوعاً لأخطاء سير العمل.
ماذا يمكنني أن أفعل بمخطط Mermaid؟
الصقه في GitHub أو GitLab أو Notion أو Obsidian أو mermaid.live لعرض مخطط الحالات للمراجعات والتوثيق.