जावास्क्रिप्ट (Node.js) में परीक्षण: फ्रेमवर्क और उपकरण

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

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

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

जावास्क्रिप्ट (Node.js) में परीक्षण: फ्रेमवर्क और उपकरण



गुणवत्तापूर्ण परीक्षण Node.js पर विकास का एक अनिवार्य हिस्सा है। यह प्रारंभिक चरणों में त्रुटियों का पता लगाने, रिफैक्टरिंग को सरल बनाने और अनुप्रयोगों की विश्वसनीयता बढ़ाने में सक्षम बनाता है। जावास्क्रिप्ट पारिस्थितिकी तंत्र में परीक्षण के लिए कई फ्रेमवर्क और उपयोगिताएँ मौजूद हैं। इस लेख में हम मुख्य उपकरणों, उनकी क्षमताओं की समीक्षा करेंगे और व्यावहारिक उदाहरण देंगे।



1. परीक्षण के मुख्य प्रकार

उपकरण चुनने से पहले, यह समझना महत्वपूर्ण है कि आप किस प्रकार के परीक्षण लिखेंगे:

  • मॉड्यूलर (यूनिट) परीक्षण — अलग-अलग फ़ंक्शन या मॉड्यूल को पृथक रूप से जाँचते हैं।
  • एकीकरण परीक्षण — कई मॉड्यूल, डेटाबेस या बाहरी API के बीच अंतःक्रिया की जाँच करते हैं।
  • एंड-टू-एंड (E2E) परीक्षण — ब्राउज़र या पूर्ण एप्लिकेशन में उपयोगकर्ता की क्रियाओं का अनुकरण करते हैं।


2. Jest — Facebook का सार्वभौमिक फ्रेमवर्क

Jest — जावास्क्रिप्ट परीक्षण के लिए सबसे लोकप्रिय फ्रेमवर्क है। इसमें सब कुछ शामिल है: टेस्ट-रनर, एसर्शन लाइब्रेरी, मॉक और कोड कवरेज के लिए अंतर्निहित समर्थन।



स्थापना:

npm install --save-dev jest


जोड़ फ़ंक्शन के लिए एक सरल यूनिट-टेस्ट का उदाहरण:

// sum.jsfunction sum(a, b) {  return a + b;}module.exports = sum;

// sum.test.jsconst sum = require('./sum');

test('1 + 2 का योग 3 है', () => { expect(sum(1, 2)).toBe(3);});


परीक्षण चलाना:

npx jest


Jest के लाभ:

  • React और Node परियोजनाओं के लिए शून्य कॉन्फ़िगरेशन।
  • वॉच-मोड में स्वचालित प्रारंभ।
  • अंतर्निहित मॉक और स्पाई।
  • एसिंक्रोनस कोड (async/await, callbacks) के लिए समर्थन।


3. Mocha + Chai — लचीला संयोजन

Mocha — एक लचीला टेस्ट-रनर है जो एसर्शन लाइब्रेरी को अनिवार्य नहीं करता है। इसका उपयोग अक्सर Chai के साथ किया जाता है — एक स्पष्ट सिंटैक्स (should, expect, assert) वाली लाइब्रेरी।



स्थापना:

npm install --save-dev mocha chai


Chai के साथ परीक्षण का उदाहरण:

// calculator.jsfunction divide(a, b) {  if (b === 0) throw new Error('Division by zero');  return a / b;}module.exports = { divide };

// test.jsconst { expect } = require('chai');const { divide } = require('./calculator');

describe('Calculator', function() { it('should divide two numbers', function() { expect(divide(10, 2)).to.equal(5); });

it('should throw error when dividing by zero', function() { expect(() => divide(10, 0)).to.throw('Division by zero'); });});


चलाना:

npx mocha test.js


Mocha विशेष रूप से तब सुविधाजनक होता है जब रिपोर्ट के बारीक समायोजन और अन्य उपकरणों के साथ एकीकरण की आवश्यकता होती है।



4. Supertest — HTTP-सर्वर का परीक्षण

Supertest — Express (और अन्य) सर्वरों के एकीकरण परीक्षण के लिए एक लाइब्रेरी है। यह HTTP-अनुरोध भेजने और प्रतिक्रियाओं की जाँच करने की अनुमति देता है।



स्थापना:

npm install --save-dev supertest


Express-एप्लिकेशन के लिए परीक्षण का उदाहरण:

// app.jsconst express = require('express');const app = express();app.get('/hello', (req, res) => res.json({ message: 'Hello World' }));module.exports = app;

// app.test.jsconst request = require('supertest');const app = require('./app');

describe('GET /hello', function() { it('responds with json', function(done) { request(app) .get('/hello') .expect('Content-Type', /json/) .expect(200) .then(response => { expect(response.body.message).toBe('Hello World'); done(); }); });});


Supertest Jest या Mocha के साथ अच्छी तरह से काम करता है।

अनुशंसाएँ