[英]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.