typescript - Fırlatılan herhangi bir hatada jest testini başarısız yapmak?
Herhangi bir hata atıldığında jest testini nasıl başarısız kılabilirim?
Biraz denedim ama henüz sözdizimini çözemedim.
test('getArcId => Error', async () => {
await expect(client.getArcId('skynet')).rejects.toThrow();
});
Hata mesajını alıyorum
getArcId › getArcId => Hata
expect(alınan).rejects.toThrow()
Alınan fonksiyon hata vermedi
Ancak aşağıdaki test geçiyor, bu yüzden test etmeyi amaçladığım fonksiyon gerçekten fırlatıyor (en azından fırlatmanın ne anlama geldiği konusundaki anlayışıma göre):
test('getArcId => Error', async () => {
await client.getArcId('skynet').catch(e =>
expect(e.message).toBe('Command failure')
);
});
Cevap #1
toThrow() işlevini çalıştıramadım, ama testleri şöyle yapmak işe yaradı;
it('throws on connection error', async () => {
expect.assertions(1);
await expect(nc.exec({ logger: true }))
.rejects.toEqual(Error('No command provided to proxy.'));
});
Sadece bir mesajı reddedersem;
.rejects.toEqual('some message');
Cevap #2
Jest istisna yönetiminin beklendiği gibi çalışması için, ona şu şekilde anonim bir fonksiyon geçirin:
test('getArcId => Error', async () => {
await expect(() => client.getArcId('skynet')).rejects.toThrow();
});
Jest belgelerinden
test('throws on octopus', () => {
expect(() => {
drinkFlavor('octopus');
}).toThrow();
});
Lütfen anonim fonksiyona dikkat edin. Evet, bu beni birkaç kez yakaladı :)
