簡體   English   中英

我如何為茉莉花中的錯誤編寫測試?

[英]How do I write test for error throwing in jasmine?

我想測試是否已拋出錯誤。

這是我的示例代碼:

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

您應該改用async matchers因為您正在嘗試測試 Promise。 像這樣的東西應該適合你

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

您可以在文檔中閱讀更多內容

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM