स्टेट ट्रांज़िशन जनरेटर कैसे इस्तेमाल करें
- हर पंक्ति में एक transition लिखें; पहला state ही initial state होता है।
- 0-switch या 1-switch coverage चुनें और तय करें कि अमान्य-transition टेस्ट शामिल करने हैं या नहीं।
- state तालिका, Mermaid डायग्राम और टेस्ट केस पाने के लिए Generate दबाएँ।
स्टेट ट्रांज़िशन जनरेटर की खूबियाँ
- transitions "State --event--> State" के रूप में, वैकल्पिक guards के साथ
- State × event तालिका जो वैध लक्ष्य और अमान्य संयोजन दिखाती है
- 0-switch और 1-switch coverage के टेस्ट केस
- हर अमान्य transition के लिए negative टेस्ट
- पहुँच से बाहर state और ग़ायब final state की चेतावनियाँ
- दस्तावेज़ीकरण के लिए Mermaid stateDiagram-v2 टेक्स्ट
स्टेट ट्रांज़िशन जनरेटर का उदाहरण
ऑर्डर का workflow
इनपुट:
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स्टेट ट्रांज़िशन जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
transitions कैसे लिखूँ?
हर पंक्ति में एक, "State --event--> State" के रूप में। Guards ब्रैकेट में जाते हैं ("Delivered --return [within 14 days]--> Returned")। जिस state का ज़िक्र सबसे पहले होता है वही initial state है।
0-switch और 1-switch coverage क्या है?
0-switch हर एक transition को टेस्ट करता है। 1-switch लगातार आने वाले दो transitions के हर वैध जोड़े को टेस्ट करता है, जिससे वे बग पकड़ में आते हैं जो किसी ख़ास क्रम के बाद ही दिखते हैं।
अमान्य-transition टेस्ट क्या हैं?
हर उस state × event संयोजन के लिए जिसका कोई transition परिभाषित नहीं है, एक negative टेस्ट जाँचता है कि event अस्वीकार हो और state न बदले — workflow बग का सबसे आम स्रोत यही है।
Mermaid डायग्राम का क्या करूँ?
उसे GitHub, GitLab, Notion, Obsidian या mermaid.live में पेस्ट करके state डायग्राम रेंडर करें — रिव्यू और दस्तावेज़ीकरण के लिए।