TypeScript टेस्टिंग डरावनी नहीं, बल्कि फायदेमंद है
\n\nआपने TypeScript में एक शानदार फंक्शन लिखा, प्रोजेक्ट चलाया – सब कुछ ठीक काम कर रहा है। एक हफ्ते बाद आपने एक नई फीचर जोड़ी, और पुराना लॉजिक टूट गया। परिचित लग रहा है? अगर हाँ, तो आपको तुरंत टेस्टिंग से दोस्ती करनी चाहिए। और डरने की कोई बात नहीं: टेस्ट कोई उबाऊ ज़रूरत नहीं हैं, बल्कि आपका निजी "बग डिटेक्टर" हैं जो 24/7 काम करता है।
\n\nइस लेख में हम जानेंगे कि शुरुआती लोग TypeScript टेस्टिंग कहाँ से शुरू करें। आप सीखेंगे कि एनवायरनमेंट कैसे सेट करें, पहला unit-टेस्ट कैसे लिखें, और टाइप्स में कैसे न उलझें। कोई बेकार की बात नहीं – सिर्फ प्रैक्टिकल और रियल कोड उदाहरण।
\n\nजब TypeScript पहले से सुरक्षित है, तो टेस्ट क्यों करें?
\n\nTypeScript वास्तव में कंपाइलेशन के समय कई गलतियाँ पकड़ लेता है: गलत टाइप्स, गायब फील्ड्स, गलत आर्गुमेंट्स। लेकिन स्टैटिक टाइपिंग लॉजिकल गलतियों से नहीं बचाती। आपका फंक्शन कंपाइलेशन तो आसानी से पास कर सकता है, लेकिन गलत रिजल्ट दे सकता है। उदाहरण के लिए:
\n\nfunction sum(a: number, b: number): number {\n return a - b; // गलती! जोड़ने की जगह घटाव\n}\n\nTypeScript कोई शिकायत नहीं करेगा – टाइप्स सही हैं। लेकिन unit-टेस्ट तुरंत दिखा देगा कि sum(2, 2) 4 के बराबर नहीं है। इसलिए TypeScript टेस्टिंग किसी भी गंभीर प्रोजेक्ट के लिए एक ज़रूरत है, कोई शौक नहीं।
चरण 1. टूल चुनें: शुरुआती के लिए Jest सबसे अच्छा दोस्त क्यों है
\n\nबाजार में कई लोकप्रिय टेस्टिंग फ्रेमवर्क हैं: Mocha, Jasmine, Vitest, Jest। शुरुआती लोगों के लिए मैं जोरदार सुझाव देता हूँ Jest। क्यों?
\n\n- \n
- "आउट ऑफ द बॉक्स" काम करता है – लंबी सेटअप की ज़रूरत नहीं। \n
- बिल्ट-इन mock मैकेनिज्म और कोड कवरेज। \n
ts-jestके ज़रिए TypeScript के लिए शानदार सपोर्ट। \n - साफ-सुथरे एरर मैसेज। \n
चलिए आपके प्रोजेक्ट में Jest इंस्टॉल करते हैं। मान लेते हैं कि आपके पास TypeScript पहले से है। अगर नहीं है, तो एक नया प्रोजेक्ट बनाएँ:
\n\nmkdir my-ts-project\ncd my-ts-project\nnpm init -y\nnpm install typescript jest @types/jest ts-jest --save-dev\n\nअब प्रोजेक्ट की रूट में jest.config.js फाइल बनाएँ:
module.exports = {\n preset: 'ts-jest',\n testEnvironment: 'node',\n roots: ['/src'],\n testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],\n}; \n\nऔर package.json में एक स्क्रिप्ट जोड़ें:
"scripts": {\n "test": "jest",\n "test:watch": "jest --watch"\n}\n\nहो गया! अब टेस्ट लिखने के लिए तैयार हैं।
\n\nचरण 2. TypeScript में पहला टेस्ट लिखें
\n\nsrc/math.ts फाइल में एक सरल फंक्शन बनाएँ:
export function add(a: number, b: number): number {\n return a + b;\n}\n\nexport function divide(a: number, b: number): number {\n if (b === 0) {\n throw new Error('शून्य से भाग देना मना है');\n }\n return a / b;\n}\n\nअब इसके लिए टेस्ट लिखें। src/__tests__/ फोल्डर बनाएँ और उसमें math.test.ts फाइल बनाएँ:
import { add, divide } from '../math';\n\ndescribe('Math functions', () => {\n test('दो संख्याओं को सही ढंग से जोड़ता है', () => {\n expect(add(2, 3)).toBe(5);\n expect(add(-1, 1)).toBe(0);\n expect(add(0, 0)).toBe(0);\n });\n\n test('दो संख्याओं को विभाजित करता है', () => {\n expect(divide(10, 2)).toBe(5);\n expect(divide(9, 3)).toBe(3);\n });\n\n test('शून्य से भाग देने पर एरर फेंकता है', () => {\n expect(() => divide(5, 0)).toThrow('शून्य से भाग देना मना है');\n });\n});\n\nnpm test चलाएँ और हरी रिपोर्ट देखें। बधाई हो – आपने अभी-अभी अपना पहला TypeScript unit-टेस्ट लिखा है!
यहाँ क्या हुआ?
\n\n- \n
describe– टेस्ट को एक लॉजिकल ग्रुप में जोड़ता है। \n testयाit– एक अलग टेस्ट-केस। \n expect– एक एसर्शन जो जाँचता है \n