【问题标题】:How do I write test for error throwing in jasmine?我如何为茉莉花中的错误编写测试?
【发布时间】:2020-05-25 16:06:38
【问题描述】:

我想测试一下是否抛出了错误。

这是我的示例代码:

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

【问题讨论】:

    标签: javascript node.js unit-testing lambda jasmine


    【解决方案1】:

    您应该改用async matchers,因为您正在尝试测试 Promise。像这样的东西应该适合你

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

    您可以阅读更多in the docs

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多