TypeScript में परीक्षण: फ्रेमवर्क और टूल्स के लिए पूर्ण गाइड

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

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

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

TypeScript में परीक्षण: गुणवत्तापूर्ण विकास के लिए फ्रेमवर्क और टूल्स



TypeScript एक शक्तिशाली भाषा है जो JavaScript में स्थिर टाइपिंग जोड़ती है। हालांकि, सख्त टाइप भी तार्किक त्रुटियों की अनुपस्थिति की गारंटी नहीं देते हैं। कोड की विश्वसनीयता सुनिश्चित करने के लिए परीक्षण का उपयोग करना आवश्यक है। इस लेख में, हम TypeScript अनुप्रयोगों के परीक्षण के लिए प्रमुख टूल्स और फ्रेमवर्क पर चर्चा करेंगे: मॉड्यूलर टेस्ट से लेकर एंड-टू-एंड (E2E) परीक्षण तक।



TypeScript कोड का परीक्षण क्यों करें?

TypeScript कंपाइलर टाइप त्रुटियों को पकड़ता है, लेकिन बिज़नेस लॉजिक की जाँच नहीं करता। परीक्षण मदद करते हैं:

  • रीफैक्टरिंग के दौरान रिग्रेशन का पता लगाना
  • फंक्शन के अपेक्षित व्यवहार का दस्तावेज़ीकरण करना
  • स्वचालित सत्यापन के माध्यम से कोड-रिव्यू को गति देना
  • एप्लिकेशन के काम करने में विश्वास बढ़ाना


परीक्षण की मुख्य श्रेणियाँ

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


1. Jest — यूनिट-टेस्ट के लिए सार्वभौमिक फ्रेमवर्क

Facebook का Jest TypeScript के लिए सबसे लोकप्रिय विकल्प है। यह "बॉक्स से बाहर" काम करता है: इसमें जटिल कॉन्फ़िगरेशन की आवश्यकता नहीं होती, इसमें बिल्ट-इन मॉक इंजन और कोड कवरेज रिपोर्ट है।



स्थापना:

npm install --save-dev jest @types/jest ts-jest

jest.config.ts में जोड़ें:

export default {  preset: 'ts-jest',  testEnvironment: 'node',};


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

// math.tsexport const add = (a: number, b: number): number => a + b;

// math.test.tsimport { add } from './math';

describe('add', () => { it('should return sum of two numbers', () => { expect(add(2, 3)).toBe(5); });

it('should handle negative numbers', () => { expect(add(-1, -2)).toBe(-3); });});


Jest में मॉक (mocks):

// api.tsexport const fetchData = async (id: string) => {  const response = await fetch(`/api/${id}`);  return response.json();};

// api.test.tsjest.mock('./api', () => ({ fetchData: jest.fn().mockResolvedValue({ id: '1', name: 'Test' }),}));

import { fetchData } from './api';

test('should return mocked data', async () => { const data = await fetchData('1'); expect(data.name).toBe('Test');});


2. Mocha + Chai — लचीला विकल्प

Mocha एक टेस्ट-रनर है जो प्रक्रिया पर पूर्ण नियंत्रण देता है। Chai अभिव्यंजक असर्शन (assertions) जोड़ता है।



स्थापना:

npm install --save-dev mocha chai @types/mocha @types/chai ts-node


एसिंक्रोनस इंटीग्रेशन टेस्ट का उदाहरण:

// database.tsexport class Database {  async getUser(id: number): Promise<{ id: number; name: string }> {    // क्वेरी का अनुकरण    return { id, name: 'Alice' };  }}

// database.test.tsimport { expect } from 'chai';import { Database } from './database';

describe('Database', () => { it('should return user by id', async () => { const db = new Database(); const user = await db.getUser(1); expect(user).to.have.property('name', 'Alice'); });});


चलाने के लिए कमांड का उपयोग करें mocha --require ts-node/register src/**/*.test.ts।



3. Cypress — वेब अनुप्रयोगों के लिए E2E परीक्षण

Cypress TypeScript पर फ्रंटएंड के परीक्षण के लिए आदर्श है। यह वास्तविक ब्राउज़र में काम करता है और इसमें सुविधाजनक GUI इंटरफ़ेस है।



स्थापना:

npm install --save-dev cypress @cypress/types


लॉगिन पेज के लिए E2E टेस्ट का उदाहरण

अनुशंसाएँ