JavaScript पर BDD: ऐसे परीक्षण लिखना जो व्यवसाय समझे

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

प्रोग्रामर को कैसे समझाएं कि बग का मतलब "यह काम नहीं करता" नहीं है?

\n

क्या आपने कभी ऐसा कार्य प्राप्त किया है: "बटन को सही ढंग से काम करने दें"? या इससे भी बुरा, आपने कोड लिखा, परीक्षण हरे हैं, लेकिन ग्राहक कहता है: "यह वह नहीं है जो मैंने माँगा था"। परिचित दर्द है? उस दुनिया में आपका स्वागत है जहाँ JavaScript पर BDD (Behaviour-Driven Development) जीवन रेखा बन जाता है।

\n

BDD सिर्फ एक और फैशनेबल संक्षिप्त नाम नहीं है। यह एक दृष्टिकोण है जो डेवलपर्स, परीक्षकों और व्यावसायिक विश्लेषकों को एक ही भाषा बोलने के लिए मजबूर करता है। जीवंत हिंदी में, बिना "पद्धतियों" और "आर्किटेक्चरल प्रतिमानों" के। आज हम देखेंगे कि JavaScript प्रोजेक्ट में BDD कैसे लागू करें, वास्तविक परीक्षण लिखें और समझें कि यह कोड को साफ और जीवन को सरल क्यों बनाता है।

\n\n
\n\n

BDD क्या है और यह TDD से कैसे अलग है?

\n

चलिए तुरंत स्पष्ट करते हैं। BDD (Behaviour-Driven Development) TDD (Test-Driven Development) का विकास है। यदि TDD कहता है: "पहले परीक्षण लिखें, फिर कोड", तो BDD जोड़ता है: "लेकिन परीक्षण एक निवेशक-दादी को भी समझ में आना चाहिए"।

\n

BDD का मुख्य विचार: हम सिस्टम के व्यवहार का परीक्षण करते हैं, न कि इसकी आंतरिक संरचना का। हम यह नहीं पूछते: "क्या फ़ंक्शन true लौटाता है?"। हम पूछते हैं: "क्या उपयोगकर्ता कार्ट में आइटम जोड़ सकता है और ऑर्डर की राशि देख सकता है?"। अंतर बहुत बड़ा है।

\n

JavaScript पर BDD के लिए एक विशेष भाषा है — Gherkin। यह एक छद्म-अंग्रेजी (या छद्म-हिंदी) है जो Lego निर्माण किट के निर्देशों की तरह दिखती है:

\n\n
कार्यक्षमता: शॉपिंग कार्ट\n  एक पंजीकृत उपयोगकर्ता के रूप में\n  मैं कार्ट में आइटम जोड़ना चाहता हूँ\n  ताकि मैं कुल लागत देख सकूँ\n\n  परिदृश्य: एक आइटम जोड़ना\n    मान लीजिए उपयोगकर्ता प्रमाणित है\n    जब वह कार्ट में "लैपटॉप" आइटम जोड़ता है\n    तब कार्ट में 1 आइटम दिखाई देता है\n    और कुल लागत 99900 रुपये के बराबर है\n
\n\n

मान गए, यह व्यावसायिक आवश्यकता की तरह पढ़ा जाता है, कोड की तरह नहीं। और यह BDD की मुख्य विशेषता है।

\n\n
\n\n

JavaScript पर BDD के लिए उपकरण

\n

behaviour-driven development करने के लिए JavaScript पर सही उपकरण चाहिए। ये तीन मुख्य स्तंभ हैं जिन पर सब कुछ टिका है:

\n\n
    \n
  • Cucumber.js — BDD के लिए सबसे लोकप्रिय फ्रेमवर्क। यह Gherkin परिदृश्यों को पार्स करता है और उन्हें कोड से जोड़ता है।
  • \n
  • Jest + Jest-Cucumber — यदि आप पहले से Jest का उपयोग कर रहे हैं, तो यह आदर्श विकल्प है। कोई जादू नहीं, केवल शुद्ध एकीकरण।
  • \n
  • Mocha + Chai + Gherkin — उन लोगों के लिए जो मैन्युअल रूप से निर्माण किट जोड़ना पसंद करते हैं। लचीला, लेकिन अधिक कोड।
  • \n
\n\n

हम Cucumber.js का उपयोग करेंगे, क्योंकि यह उद्योग मानक है। इंस्टॉलेशन सरल है:

\n\n
npm install @cucumber/cucumber --save-dev\n
\n\n

इसके बाद, features/ फ़ोल्डर बनाएँ — यहाँ हमारी .feature फ़ाइलें रहेंगी। और step_definitions/ फ़ोल्डर में — कोड जो परिदृश्यों को जीवंत करता है।

\n\n
\n\n

पहला BDD परीक्षण लिखना: उपयोगकर्ता प्रमाणीकरण

\n

मान लीजिए हम एक ऑनलाइन स्टोर बना रहे हैं। पहली चीज़ जिसका परीक्षण करना है वह है लॉगिन। फ़ाइल बनाएँ features/login.feature:

\n\n
# language: hi\nकार्यक्षमता: उपयोगकर्ता प्रमाणीकरण\n  एक साइट आगंतुक के रूप में\n  मैं अपने व्यक्तिगत खाते में लॉग इन करना चाहता हूँ\n  ताकि मैं अपने ऑर्डर प्रबंधित कर सकूँ\n\n  परिदृश्य: सही डेटा के साथ सफल लॉगिन\n    मान लीजिए मैं लॉगिन पेज पर हूँ\n    जब मैं ईमेल "user@example.com" और पासवर्ड "123456" दर्ज करता हूँ\n    और "लॉग इन" बटन दबाता हूँ\n    तब मुझे स्वागत संदेश "स्वागत है, इवान!" दिखाई देता है\n
\n\n

अब हमें स्टेप्स (steps) लिखने होंगे — JavaScript कोड जो इन क्रियाओं को निष्पादित करेगा। बनाएँ step_definitions/login.steps.js:

\n\n
const { Given, When, Then } = require('@cucumber/cucumber');\nconst { expect } = require('chai');\n\n// एप्लिकेशन की स्थिति (सिमुलेशन)\nlet currentPage = '';\nlet userEmail =                

ब्लॉग

पुस्तक अनुशंसाएँ