TypeScript में परीक्षण: आधुनिक फ्रेमवर्क और टूल्स का अवलोकन
TypeScript — JavaScript का एक सख्ती से टाइप किया गया सुपरसेट है, जिसका आधुनिक वेब डेवलपमेंट में सक्रिय रूप से उपयोग किया जाता है। हालांकि, टाइपिंग स्वयं तार्किक त्रुटियों की अनुपस्थिति की गारंटी नहीं देती है। कोड की गुणवत्ता सुनिश्चित करने के लिए उचित परीक्षण आवश्यक है। इस लेख में, हम TypeScript अनुप्रयोगों के परीक्षण के लिए मुख्य फ्रेमवर्क और टूल्स, उनकी विशेषताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।
TypeScript कोड का परीक्षण क्यों करें?
इस तथ्य के बावजूद कि TypeScript संकलन चरण में प्रकारों की जाँच करता है, यह रनटाइम त्रुटियों, गलत व्यावसायिक तर्क या प्रतिगमन से रक्षा नहीं करता है। परीक्षण मदद करते हैं:
- प्रोडक्शन में जाने से पहले त्रुटियों का पता लगाना;
- फ़ंक्शन और मॉड्यूल के व्यवहार का दस्तावेजीकरण करना;
- कोड के रिफैक्टरिंग और रखरखाव को सरल बनाना;
- जाँचों के स्वचालन के माध्यम से विकास प्रक्रिया को गति देना।
TypeScript परीक्षण के लिए लोकप्रिय फ्रेमवर्क
1. Jest — सार्वभौमिक विकल्प
Jest — Facebook द्वारा बनाया गया सबसे लोकप्रिय फ्रेमवर्क है। यह ts-jest पैकेज या Babel सेटअप के माध्यम से TypeScript को "आउट ऑफ द बॉक्स" सपोर्ट करता है। Jest में test runner, assertion library, mocking और coverage reports शामिल हैं।
स्थापना और सेटअप:
npm install --save-dev jest ts-jest @types/jestnpx ts-jest config:initयोग फ़ंक्शन के लिए यूनिट परीक्षण का उदाहरण:
// sum.tsexport function sum(a: number, b: number): number { return a + b;}
// sum.test.tsimport { sum } from './sum';
describe('sum function', () => { test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
test('adds negative numbers', () => { expect(sum(-1, -2)).toBe(-3); });});2. Vitest — Vite प्रोजेक्ट्स के लिए तेज़ विकल्प
Vitest — एक आधुनिक फ्रेमवर्क है जो बिल्ड के लिए Vite का उपयोग करता है। यह Jest API के साथ संगत है, लेकिन ES-मॉड्यूल और HMR के मूल समर्थन के कारण काफी तेज़ी से काम करता है। Vue, React या Svelte प्रोजेक्ट्स के लिए उपयुक्त है।
सेटअप का उदाहरण:
// vitest.config.tsimport { defineConfig } from 'vitest/config';
export default defineConfig({ test: { globals: true, environment: 'node', },});describe/it का उपयोग करते हुए परीक्षण:
import { describe, it, expect } from 'vitest';
function multiply(a: number, b: number): number { return a * b;}
describe('multiply', () => { it('should multiply two numbers', () => { expect(multiply(3, 4)).toBe(12); });});3. Mocha + Chai — लचीला क्लासिक
Mocha — एक लचीला test runner है जिसका उपयोग अक्सर assertion library Chai के साथ किया जाता है। TypeScript के लिए ts-node और @types/mocha को अतिरिक्त रूप से स्थापित करना होगा। Mocha कई प्लगइन और अनुकूलन प्रदान करता है।
उदाहरण:
import { expect } from 'chai';
function greet(name: string): string { return `Hello, ${name}!`;}
describe('greet', () => { it('should return a greeting', () => { expect(greet('Alex')).to.equal('Hello, Alex!'); });});एंड-टू-एंड (E2E) परीक्षण के लिए उपकरण
4. Playwright — आधुनिक E2E उपकरण
Playwright Microsoft द्वारा, TypeScript को मूल रूप से सपोर्ट करता है, Chromium, Firefox और WebKit का परीक्षण करने की अनुमति देता है। यह नेटवर्क अनुरोधों के साथ काम कर सकता है, मोबाइल उपकरणों का अनुकरण कर सकता है और स्क्रीनशॉट ले सकता है।
स्थापना:
npm init playwright@latestपृष्ठ शीर्षक की जाँच के लिए परीक्षण का उदाहरण:
import { test, expect } from '@playwright/te