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');
});
});
