TypeScript
इकाई का परीक्षण
खोज…
Alsatian
Alsatian टाइपस्क्रिप्ट में लिखी एक इकाई परीक्षण रूपरेखा है। यह टेस्ट मामलों के उपयोग की अनुमति देता है, और टीएपी-अनुपालन मार्कअप को आउटपुट करता है।
इसका उपयोग करने के लिए, इसे npm
से स्थापित करें:
npm install alsatian --save-dev
फिर एक परीक्षण फ़ाइल सेट करें:
import { Expect, Test, TestCase } from "alsatian";
import { SomeModule } from "../src/some-module";
export SomeModuleTests {
@Test()
public statusShouldBeTrueByDefault() {
let instance = new SomeModule();
Expect(instance.status).toBe(true);
}
@Test("Name should be null by default")
public nameShouldBeNullByDefault() {
let instance = new SomeModule();
Expect(instance.name).toBe(null);
}
@TestCase("first name")
@TestCase("apples")
public shouldSetNameCorrectly(name: string) {
let instance = new SomeModule();
instance.setName(name);
Expect(instance.name).toBe(name);
}
}
एक पूर्ण प्रलेखन के लिए, अल्साटियन के गिटहब रेपो देखें ।
ची-अपरिवर्तनीय प्लगइन
एनपीएम चाई, चाई-अपरिवर्तनीय और टीएस-नोड से स्थापित करें
npm install --save-dev chai chai-immutable ts-node
मोचा और ची के लिए प्रकार स्थापित करें
npm install --save-dev @types/mocha @types/chai
सरल परीक्षण फ़ाइल लिखें:
import {List, Set} from 'immutable'; import * as chai from 'chai'; import * as chaiImmutable from 'chai-immutable'; chai.use(chaiImmutable); describe('chai immutable example', () => { it('example', () => { expect(Set.of(1,2,3)).to.not.be.empty; expect(Set.of(1,2,3)).to.include(2); expect(Set.of(1,2,3)).to.include(5); }) })
इसे कंसोल में चलाएं:
mocha --compilers ts:ts-node/register,tsx:ts-node/register 'test/**/*.spec.@(ts|tsx)'
फीता
टेप न्यूनतम जावास्क्रिप्ट परीक्षण ढांचा है, यह टीएपी-अनुरूप मार्कअप का उत्पादन करता है।
npm
रन कमांड का उपयोग करके tape
स्थापित करने के लिए
npm install --save-dev tape @types/tape
टाइपस्क्रिप्ट के साथ tape
उपयोग करने के लिए आपको ग्लोबल पैकेज के रूप में ts- ts-node
को स्थापित करने की आवश्यकता है, इस रन कमांड को करने के लिए
npm install -g ts-node
अब आप अपना पहला परीक्षण लिखने के लिए तैयार हैं
//math.test.ts
import * as test from "tape";
test("Math test", (t) => {
t.equal(4, 2 + 2);
t.true(5 > 2 + 2);
t.end();
});
परीक्षण रन कमांड निष्पादित करने के लिए
ts-node node_modules/tape/bin/tape math.test.ts
आउटपुट में आपको देखना चाहिए
TAP version 13
# Math test
ok 1 should be equal
ok 2 should be truthy
1..2
# tests 2
# pass 2
# ok
अच्छी नौकरी, आपने बस अपना टाइपस्क्रिप्ट परीक्षण चलाया।
कई परीक्षण फ़ाइलें चलाएँ
पथ वाइल्डकार्ड का उपयोग करके आप एक साथ कई परीक्षण फ़ाइलें चला सकते हैं। tests
निर्देशिका रन कमांड में सभी टाइपस्क्रिप्ट परीक्षणों को निष्पादित करने के लिए
ts-node node_modules/tape/bin/tape tests/**/*.ts
jest (ts-jest)
jest फेसबुक द्वारा पीड़ारहित जावास्क्रिप्ट परीक्षण ढाँचा है, ts-jest का उपयोग टाइपस्क्रिप्ट कोड का परीक्षण करने के लिए किया जा सकता है।
Npm रन कमांड का उपयोग करके जेस्ट स्थापित करने के लिए
npm install --save-dev jest @types/jest ts-jest typescript
इस्तेमाल में आसानी के लिए स्थापित jest
वैश्विक पैकेज के रूप में
npm install -g jest
TypeScript के साथ jest
काम करने के लिए आपको package.json
कॉन्फ़िगरेशन जोड़ना होगा
//package.json
{
...
"jest": {
"transform": {
".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": ["ts", "tsx", "js"]
}
}
अब jest
तैयार है। मान लें कि हमारे पास परीक्षण करने के लिए नमूना फ़िज़ बज़ है
//fizzBuzz.ts
export function fizzBuzz(n: number): string {
let output = "";
for (let i = 1; i <= n; i++) {
if (i % 5 && i % 3) {
output += i + ' ';
}
if (i % 3 === 0) {
output += 'Fizz ';
}
if (i % 5 === 0) {
output += 'Buzz ';
}
}
return output;
}
उदाहरण परीक्षण की तरह लग सकता है
//FizzBuzz.test.ts
/// <reference types="jest" />
import {fizzBuzz} from "./fizzBuzz";
test("FizzBuzz test", () =>{
expect(fizzBuzz(2)).toBe("1 2 ");
expect(fizzBuzz(3)).toBe("1 2 Fizz ");
});
परीक्षण रन निष्पादित करने के लिए
jest
आउटपुट में आपको देखना चाहिए
PASS ./fizzBuzz.test.ts
✓ FizzBuzz test (3ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.46s, estimated 2s
Ran all test suites.
कोड कवरेज़
jest
कोड कवरेज रिपोर्टों की पीढ़ी का समर्थन करता है।
TypeScript के साथ कोड कवरेज का उपयोग करने के लिए आपको package.json
एक और कॉन्फ़िगरेशन लाइन जोड़ने की आवश्यकता है।
{
...
"jest": {
...
"testResultsProcessor": "<rootDir>/node_modules/ts-jest/coverageprocessor.js"
}
}
कवरेज रिपोर्ट चलाने की पीढ़ी के साथ परीक्षण चलाने के लिए
jest --coverage
यदि हमारे नमूने के साथ प्रयोग किया जाता है तो आप देख सकते हैं
PASS ./fizzBuzz.test.ts
✓ FizzBuzz test (3ms)
-------------|----------|----------|----------|----------|----------------|
File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |
-------------|----------|----------|----------|----------|----------------|
All files | 92.31 | 87.5 | 100 | 91.67 | |
fizzBuzz.ts | 92.31 | 87.5 | 100 | 91.67 | 13 |
-------------|----------|----------|----------|----------|----------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.857s
Ran all test suites.
jest
ने फ़ोल्डर coverage
भी बनाया जिसमें विभिन्न स्वरूपों में कवरेज रिपोर्ट शामिल है, जिसमें उपयोगकर्ता के अनुकूल HTML रिपोर्ट शामिल है coverage/lcov-report/index.html