TypeScript में परीक्षण: फ्रेमवर्क और उपकरण

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

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

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

TypeScript में परीक्षण: फ्रेमवर्क, उपकरण और सर्वोत्तम अभ्यास

\n\n

TypeScript, JavaScript पर एक स्थिर रूप से टाइप की गई परत है, जिसका आधुनिक वेब प्रोजेक्ट्स में सक्रिय रूप से उपयोग किया जाता है। हालाँकि, टाइपिंग स्वयं तार्किक त्रुटियों, रनटाइम बग या घटकों के गलत कामकाज की अनुपस्थिति की गारंटी नहीं देती है। इसलिए, TypeScript अनुप्रयोगों का परीक्षण विकास का एक अनिवार्य चरण है। इस लेख में, हम TypeScript परीक्षण के लिए मुख्य फ्रेमवर्क और उपकरणों, उनकी विशेषताओं, उपयोग के उदाहरणों और चयन के लिए सिफारिशों पर विस्तार से चर्चा करेंगे।

\n\n

1. TypeScript परीक्षण JavaScript से क्यों अलग है?

\n

TypeScript स्थिर प्रकार की जाँच जोड़ता है, लेकिन यह यूनिट परीक्षण, एकीकरण परीक्षण या E2E परीक्षणों को प्रतिस्थापित नहीं करता है। हालाँकि, TypeScript लाभ प्रदान करता है:

\n
    \n
  • प्रकार सुरक्षा — कंपाइलर विकास के दौरान कई त्रुटियों को पकड़ लेता है।
  • \n
  • बेहतर IDE समर्थन — ऑटो-पूर्णता, रीफैक्टरिंग, नेविगेशन।
  • \n
  • परीक्षण कोड की शुद्धता — प्रकार स्वयं परीक्षणों में बग से बचने में मदद करते हैं।
  • \n
\n

साथ ही, TypeScript परीक्षण के लिए फ्रेमवर्क आमतौर पर ट्रांसपिलेशन (ts-jest, esbuild, swc) के माध्यम से काम करते हैं या TypeScript के लिए अंतर्निहित समर्थन का उपयोग करते हैं।

\n\n

2. यूनिट परीक्षण के लिए मुख्य फ्रेमवर्क

\n\n

Jest

\n

JavaScript और TypeScript के परीक्षण के लिए सबसे लोकप्रिय फ्रेमवर्क। Facebook द्वारा समर्थित, इसमें अंतर्निहित assertion लाइब्रेरी, मॉक, स्पाई और कोड कवरेज है।

\n

स्थापना और कॉन्फ़िगरेशन:

\n
npm install --save-dev jest @types/jest ts-jest typescript
\n

jest.config.ts में कॉन्फ़िगरेशन:

\n
export default {\n  preset: 'ts-jest',\n  testEnvironment: 'node',\n  roots: ['<rootDir>/src']\n};
\n

परीक्षण उदाहरण:

\n
// sum.ts\nexport function sum(a: number, b: number): number {\n  return a + b;\n}\n\n// sum.test.ts\nimport { sum } from './sum';\n\ndescribe('sum function', () => {\n  it('should add two numbers correctly', () => {\n    expect(sum(2, 3)).toBe(5);\n  });\n\n  it('should handle negative numbers', () => {\n    expect(sum(-1, -2)).toBe(-3);\n  });\n});
\n\n

Vitest

\n

Jest का एक आधुनिक विकल्प, जो Vite प्रोजेक्ट्स के लिए अनुकूलित है। यह हुड के नीचे esbuild/swc के उपयोग के कारण उच्च गति से काम करता है। बॉक्स से बाहर TypeScript के साथ पूरी तरह से संगत।

\n

स्थापना:

\n
npm install --save-dev vitest
\n

परीक्षण उदाहरण (अतिरिक्त कॉन्फ़िगरेशन के बिना):

\n
// utils.ts\nexport const capitalize = (str: string): string => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\n// utils.test.ts\nimport { describe, it, expect } from 'vitest';\nimport { capitalize } from './utils';\n\ndescribe('capitalize', () => {\n  it('should capitalize first letter', () => {\n    expect(capitalize('hello')).toBe('Hello');\n  });\n\n  it('should handle empty string', () => {\n    expect(capitalize('')).toBe('');\n  });\n});
\n\n

Mocha + Chai

\n

लचीले परीक्षण के लिए क्लासिक जोड़ी। Mocha — test runner, Chai — assertions के लिए लाइब्रेरी। TypeScript के लिए अतिरिक्त सेटअप की आवश्यकता है।

\n

स्थापना:

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

उदाहरण:

\n
import { expect } from 'chai';\nimport { describe, it } from 'mocha';\n\nfunction multiply(a: number, b: number): number {\n  return a * b;\n}\n\ndescribe('multiply', () => {\n  it('should multiply two numbers', () => {\n    expect(multiply(3, 4)).to.equal(12);\n  });\n\n  it('should handle zero', () => {\n    expect(multiply(5, 0)).to.equal(0);\n  });\n});
\n\n

3. एकीकरण और E2E परीक्षण के लिए उपकरण

\n\n

Cypress

\n

वेब अनुप्रयोगों के end-to-end परीक्षण के लिए फ्रेमवर्क। ब्राउज़र में काम करता है, इसमें सुविधाजनक डैशबोर्ड, स्वचालित प्रतीक्षाएँ हैं।

अनुशंसाएँ