Jest framework tutorials with examples in hindi

 

Jest Framework Tutorial in Hindi

Jest एक बहुत ही लोकप्रिय और शक्तिशाली जावास्क्रिप्ट टेस्टिंग फ्रेमवर्क है, जिसे फेसबुक (Facebook) द्वारा विकसित किया गया है। इसे विशेष रूप से React एप्लिकेशन के लिए डिज़ाइन किया गया था, लेकिन अब इसे जावास्क्रिप्ट की अन्य लाइब्रेरी और फ्रेमवर्क जैसे Node.js, Vue.js, Angular आदि के लिए भी इस्तेमाल किया जा सकता है। Jest को unit testing, integration testing, और end-to-end testing के लिए व्यापक रूप से उपयोग किया जाता है।

इस ट्यूटोरियल में हम Jest फ्रेमवर्क को समझेंगे, इसकी बुनियादी कार्यप्रणाली, और उदाहरणों के माध्यम से Jest का उपयोग कैसे करें, यह जानेंगे।


Jest क्या है?

Jest एक JavaScript testing framework है जिसे वेब एप्लिकेशन और सर्वर-साइड एप्लिकेशन की टेस्टिंग के लिए इस्तेमाल किया जाता है। Jest की विशेषताएँ हैं:

  1. Zero Configuration: Jest को सेटअप करने के लिए बहुत कम या कोई भी कॉन्फ़िगरेशन की आवश्यकता नहीं होती है।
  2. Snapshots: Jest में Snapshot Testing की सुविधा होती है, जिससे UI बदलावों को ट्रैक किया जा सकता है।
  3. Mocks: Jest में मॉकिंग की सुविधा होती है, जिससे आप external APIs और dependencies को आसानी से मॉक कर सकते हैं।
  4. Parallel Testing: Jest परीक्षणों को समानांतर रूप से चलाता है, जिससे टेस्टिंग तेज़ होती है।
  5. Code Coverage: Jest आपको कोड कवरेज रिपोर्ट भी देता है, जिससे आप जान सकते हैं कि आपके टेस्ट किस हिस्से को कवर कर रहे हैं और कहाँ सुधार की आवश्यकता है।

Jest का इंस्टॉलेशन

Jest को अपने प्रोजेक्ट में स्थापित करना बहुत सरल है। इसे npm (Node Package Manager) के माध्यम से इंस्टॉल किया जा सकता है।

  1. सबसे पहले, यदि आपने Node.js और npm पहले से इंस्टॉल नहीं किया है, तो उन्हें Node.js की वेबसाइट से डाउनलोड और इंस्टॉल करें।

  2. फिर, अपने प्रोजेक्ट के डायरेक्टरी में जाएं और निम्नलिखित कमांड से Jest को इंस्टॉल करें:

bash
npm init -y # यदि आपने पहले npm प्रोजेक्ट नहीं बनाया है npm install --save-dev jest

यह Jest को development dependencies के रूप में इंस्टॉल कर देगा।


Jest का उपयोग कैसे करें?

1. Jest के साथ पहला टेस्ट लिखना

Jest में टेस्ट लिखने का सबसे सरल तरीका है कि आप .test.js या .spec.js एक्सटेंशन वाले फाइलें बनाएं। Jest इन फाइलों में टेस्ट केसों को ढूंढेगा और उन पर परीक्षण करेगा।

उदाहरण:

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

यह sum नामक एक फ़ंक्शन है जो दो नंबरों का योग करता है।

अब, हम इसके लिए एक टेस्ट केस लिखेंगे:

javascript
// sum.test.js const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });

यह test फ़ंक्शन Jest द्वारा प्रदान किया गया एक ग्लोबल फ़ंक्शन है, जिसका उपयोग हम एक टेस्ट लिखने के लिए करते हैं। expect एक Matcher है जिसका उपयोग हम मूल्य की जांच करने के लिए करते हैं। toBe() एक matcher है जो दो मानों के समानता की जाँच करता है।

2. Jest टेस्ट रन करना

अब, आप टेस्ट को रन करने के लिए निम्नलिखित कमांड चला सकते हैं:

bash
npx jest

यह कमांड Jest को चलाएगा और आपके सभी .test.js या .spec.js फाइलों को खोजेगा और उन पर परीक्षण करेगा।

टेस्ट रन करने के बाद का आउटपुट:

vbnet
PASS ./sum.test.js ✓ adds 1 + 2 to equal 3 (5 ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.516 s, estimated 2 s

Jest के प्रमुख Features

1. Matchers (मैचर्स)

Jest में विभिन्न प्रकार के मैचर्स होते हैं जिनका उपयोग आप अपने टेस्ट में किसी मान की अपेक्षा करने के लिए कर सकते हैं। कुछ प्रमुख matchers:

  • toBe(): मानों की समानता की जाँच करता है।
  • toEqual(): गहरे समानता की जाँच करता है, यानी objects और arrays की तुलना करता है।
  • toBeTruthy(): जांचता है कि मान सत्य है।
  • toBeFalsy(): जांचता है कि मान गलत है।

उदाहरण:

javascript
test('comparisons using matchers', () => { expect(2 + 2).toBe(4); expect([1, 2]).toEqual([1, 2]); expect(null).toBeFalsy(); expect(true).toBeTruthy(); });

2. Mocking (मॉकिंग)

Jest में मॉकिंग का इस्तेमाल करते हुए आप external dependencies और APIs को मॉक कर सकते हैं, ताकि आप अपनी टेस्टिंग को नियंत्रित कर सकें।

उदाहरण:

javascript
// externalApi.js function fetchData(callback) { setTimeout(() => { callback("Data received"); }, 1000); } module.exports = fetchData;

अब, हम इसे मॉक करेंगे:

javascript
// externalApi.test.js const fetchData = require('./externalApi'); test('fetches data from API', () => { jest.useFakeTimers(); const callback = jest.fn(); // mock function fetchData(callback); jest.runAllTimers(); // Simulate all timers expect(callback).toHaveBeenCalledWith("Data received"); });

यहां हम jest.fn() का उपयोग कर रहे हैं, जो एक मॉक फ़ंक्शन बनाता है। फिर हम jest.runAllTimers() का उपयोग कर सभी टाइमर को रन कराते हैं, ताकि हम यह सुनिश्चित कर सकें कि callback सही समय पर कॉल किया गया है।

3. Asynchronous Testing (एसींक्रोनस टेस्टिंग)

Jest में आप एसींक्रोनस कोड को टेस्ट करने के लिए async/await का उपयोग कर सकते हैं, साथ ही done() के कॉलबैक का भी उपयोग कर सकते हैं।

उदाहरण:

javascript
test('async test example', async () => { const data = await fetchDataFromAPI(); // async function expect(data).toBe("Hello, World!"); });

Snapshot Testing

Jest में Snapshot Testing का एक बहुत ही अच्छा फीचर है, जिसका उपयोग UI के रूप में डेटा की संरचना को ट्रैक करने के लिए किया जाता है। यह विशेष रूप से React एप्लिकेशन के लिए उपयोगी होता है।

उदाहरण:

javascript
// Button.js (React Component) import React from 'react'; function Button({ label }) { return <button>{label}</button>; } export default Button;

अब हम इसका Snapshot टेस्ट करेंगे:

javascript
// Button.test.js import React from 'react'; import { render } from '@testing-library/react'; import Button from './Button'; test('Button component snapshot', () => { const { asFragment } = render(<Button label="Click Me" />); expect(asFragment()).toMatchSnapshot(); });

यह कमांड Jest को कहता है कि वह UI का एक स्नैपशॉट ले और यदि भविष्य में UI में कोई बदलाव होता है तो टेस्ट इसे फेल कर देगा।


Code Coverage

Jest में कोड कवरेज रिपोर्ट देखने के लिए, आपको केवल --coverage फ्लैग का उपयोग करना होता है:

bash
npx jest --coverage

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


निष्कर्ष

Jest एक बहुत ही मजबूत और उपयोगी टेस्टिंग फ्रेमवर्क है जो आपको जावास्क्रिप्ट कोड की गुणवत्ता को बनाए रखने और बग्स को जल्दी से पकड़ने में मदद करता है। Jest की प्रमुख विशेषताएँ जैसे matchers, mocking, snapshot testing, asynchronous testing, और code coverage इसे एक सम्पूर्ण टेस्टिंग टूल बनाती हैं। आप इसे React, Node.js, या किसी भी जावास्क्रिप्ट प्रोजेक्ट में आसानी से इस्तेमाल कर सकते हैं।

Comments

Popular posts from this blog

PrimeNG tutorial with examples using frequently used classes

Docker and Kubernetes Tutorials and QnA

Building strong foundational knowledge in frontend development topics