JavaScript डेवलपर्स के लिए Jest टेस्टिंग गाइड
टेस्टिंग आपको बग्स (bugs) को जल्दी खोजने में मदद करती है। यह कोड की गुणवत्ता में सुधार करती है। यह आपको पुराने कोड को तोड़े बिना नए फीचर्स शिप करने की अनुमति देती है।
Jest, JavaScript और Node.js के लिए एक लोकप्रिय टेस्टिंग टूल है। इसे Meta द्वारा बनाया गया है। यह TypeScript, React, Next.js, और Express.js के साथ काम करता है।
Jest का उपयोग क्यों करें?
- इसमें सेटअप की बहुत कम आवश्यकता होती है।
- गति के लिए यह टेस्ट को पैरेलल (parallel) में चलाता है।
- इसमें मॉकिंग टूल्स (mocking tools) शामिल हैं।
- यह कोड कवरेज रिपोर्ट दिखाता है।
- यह स्पष्ट एरर मैसेज प्रदान करता है।
Jest को कैसे सेटअप करें:
- एक Node.js प्रोजेक्ट बनाएं:
npm init -y - Jest इंस्टॉल करें:
npm install --save-dev jest - "test": "jest" शामिल करने के लिए
package.jsonस्क्रिप्ट को अपडेट करें npm testके साथ टेस्ट चलाएं
एक सरल टेस्ट लिखना:
sum.js बनाएं:
function sum(a, b) {
return a + b;
}
module.exports = sum;
sum.test.js बनाएं:
const sum = require("./sum");
test("adds two numbers", () => {
expect(sum(2, 3)).toBe(5);
});
आवश्यक Jest टूल्स:
- Assertions: वैल्यूज़ चेक करने के लिए
expect()औरtoBe()का उपयोग करें। - Objects: ऑब्जेक्ट्स या एरेज़ की तुलना करने के लिए
toEqual()का उपयोग करें। - Organization: संबंधित टेस्ट को ग्रुप करने के लिए
describe()का उपयोग करें। - Async: Jest
awaitका उपयोग करके async फंक्शन्स को स्वाभाविक रूप से हैंडल करता है। - Mocks: फंक्शन्स को सिम्युलेट करने के लिए
jest.fn()का उपयोग करें। यह असली API कॉल्स या डेटाबेस हिट्स से बचकर टेस्ट को तेज़ रखता है। - Hooks: टेस्ट डेटा को सेटअप या क्लीनअप करने के लिए
beforeEach()औरafterEach()का उपयोग करें।
अपनी सफलता मापें:
अपना कवरेज रिपोर्ट देखने के लिए npx jest --coverage चलाएं। यह दिखाता है कि आपके कोड के किन हिस्सों में टेस्ट की कमी है।
APIs की टेस्टिंग:
API एंडपॉइंट्स को टेस्ट करने के लिए Supertest का उपयोग करें। आप असली सर्वर शुरू किए बिना स्टेटस कोड चेक कर सकते हैं।
Snapshot Testing:
React में matchSnapshot() का उपयोग करें। यह वर्तमान रेंडर्स की तुलना सेव किए गए वर्ज़न से करके आपको अप्रत्याशित UI बदलावों को खोजने में मदद करता है।
बेस्ट प्रैक्टिसेस (Best practices):
- ऐसे टेस्ट लिखें जो परिणामों (outcomes) का वर्णन करें।
- इंटरनल कोड स्ट्रक्चर को टेस्ट करने से बचें।
- यूनिट टेस्ट में असली डेटाबेस से दूर रहें।
- सार्थक कवरेज (meaningful coverage) पर ध्यान दें।
Jest में महारत हासिल करने से आपको विश्वसनीय सॉफ़्टवेयर बनाने में मदद मिलती है।