Hvordan enhetsteste unntak som kastes i konstruktøren til en TypeScript-klasse i JestJs


Jeg bygger en applikasjon i NestJs, derfor er standard enhetstestrammeverk JestJs. Anta at jeg har følgende klasse My.ts

export My {
    constructor(private myValue: number) {
       if (myValue ==== null) {
           throw new Error('myValue is null');
       }
    }
}

Jeg har laget min enhetstestklasse My.spec.ts

import { My } from './My';

describe('My', () => {
    fit('Null my value throws', () => {
        expect(new My(null)).rejects.toThrowError('myValue is null');
    });
});

Jeg bruker kommandoen npm run test for å kjøre enhetstestene, i stedet for å få det jeg forventet, hadde jeg en feil i koden i min My-klassekonstruktør hvor en unntak blir kastet.

Hva er den riktige måten å skrive enhetstestkode i Jest for å teste unntakslogikken i konstruktøren?

Svar #1

Etter at jeg gjorde min forskning, fungerer følgende koder for meg

import { My } from './My';

describe('My', () => {
    fit('Null my value throws', () => {
        expect(() => {new My(null);}).toThrow('myValue is null');
    });
});

Relaterte artikler