Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何为TypeScript Lambda函数编写单元测试?_Node.js_Typescript_Aws Lambda - Fatal编程技术网

Node.js 如何为TypeScript Lambda函数编写单元测试?

Node.js 如何为TypeScript Lambda函数编写单元测试?,node.js,typescript,aws-lambda,Node.js,Typescript,Aws Lambda,我有一个工作的Lambda函数,我正试图为它编写一个单元测试。如何正确模拟上下文和回调对象以检查函数的响应 从“./classes/Game”导入游戏; 从“./classes/HttpResponse”导入HttpResponse; 从“aws lambda”导入{Handler,Context,Callback}; 从“@aws/dynamodb数据映射器”导入{DataMapper}; 导入DynamoDB=require('aws-sdk/clients/DynamoDB'); cons

我有一个工作的Lambda函数,我正试图为它编写一个单元测试。如何正确模拟
上下文
回调
对象以检查函数的响应

从“./classes/Game”导入游戏;
从“./classes/HttpResponse”导入HttpResponse;
从“aws lambda”导入{Handler,Context,Callback};
从“@aws/dynamodb数据映射器”导入{DataMapper};
导入DynamoDB=require('aws-sdk/clients/DynamoDB');
const client=new DynamoDB({region:'us-west-2'});
const mapper=新的数据映射器({client});
常量put:Handler=(事件:any,上下文:context,回调:callback)=>{
如果(!validateInput){
const errMsg=`输入中缺少数据:${event}`;
常量响应:HttpResponse={
状态代码:400,
正文:errMsg
}
回调(errMsg,response);
}
康斯特游戏:游戏=新游戏();
game.id=event.id;
game.name=event.name;
game.imageUrl=event.imageUrl;
放置({item:game})。然后(()=>{
常量响应:HttpResponse={
状态代码:200,
正文:`将新游戏保存到DynamoDB:${JSON.stringify(游戏)}`
}
回调(未定义,响应);
});
}
函数validateInput(输入:任意):布尔值{
if(input&&input.id&&input.name){
返回true;
} 
返回false;
}
出口{put};

您使用什么进行测试?例如,
jest
mocha
,其他?mocha/chai。我面临的主要问题是:1。创建合适的模拟上下文/回调对象以通过测试,以及2。从回调获取响应以进行验证理想情况下,我还希望模拟DynamoDB调用以确保put正在发生,etc对于模拟AWS sdk调用,您可以尝试使用
AWS sdk mock