Как мне написать тест на ошибки в жасмине? - PullRequest
1 голос
/ 10 февраля 2020

Я хотел бы проверить, была ли выдана ошибка.

Вот мой пример кода:

export const lambdaHandler = async (event: any, context: any, callback: any) => {

switch(param) {
   case 1: /.../
   case 2: /.../
   default: throw new Error('error')
   }
}

Тесты, которые я пробовал

await lambdaHandler(event, {}, i.callback);

expect(lambdaHandler).toThrow();

а также

const res = await lambdaHandler(event, {}, i.callback);

expect(res).toThrow();
const res = await lambdaHandler(event, {}, i.callback);

expect(res).toEqual('error');

и

await lambdaHandler(event, {}, i.callback);

expect(async ()=> {
   await lambdaHandler(event, {}, i.callback);
}).toEqual('error');
await lambdaHandler(event, {}, i.callback);

expect(async ()=> {
   await lambdaHandler(event, {}, i.callback);
}).toThrow();

метод

.toThrowError()

у меня тоже не работает.

Результат, который я обычно получаю,

 Message:
    Error: error

1 Ответ

0 голосов
/ 14 февраля 2020

Вы должны использовать async matchers вместо этого, потому что вы пытаетесь протестировать Обещание. Нечто подобное должно работать для вас

await expectAsync(async ()=> {
  await lambdaHandler(event, {}, i.callback);
}).toBeRejectedWithError('error');

Вы можете прочитать больше в документации

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...