Вызов throwThis
возвращает Promise
, который должен отклоняться с Error
, поэтому синтаксис должен быть:
test('Method should throw Error', async () => {
let throwThis = async () => {
throw new Error();
};
await expect(throwThis()).rejects.toThrow(Error); // SUCCESS
});
Обратите внимание, что toThrow
было исправлено для обещаний в PR 4884 и работает только в 21.3.0 + .
Так что это будет работать только , если вы используете Jest
версию 22.0.0 или выше.
Если вы используете более раннюю версию Jest
, вы можете передать spy
в catch
:
test('Method should throw Error', async () => {
let throwThis = async () => {
throw new Error();
};
const spy = jest.fn();
await throwThis().catch(spy);
expect(spy).toHaveBeenCalled(); // SUCCESS
});
... и при необходимости проверить Error
бросили проверяя spy.mock.calls[0][0]
.