我正在尝试为AWS X-Ray调用设置存根,以对AWS外部的NodeJS Lambda进行单元测试。
我的lambda中包含以下代码。如何使用sinon来存储对如下所示的AWSXRay API的调用?必须先将getSegment()调用存根,然后“链接”,然后再调用addNewSubSegment(parm)?
const AWSXRay = require('aws-xray-sdk-core');
...
const rootSubSegment = AWSXRay.getSegment().addNewSubsegment("RootSubSegment");
rootSubSegment.addAnnotation("MyAnnotationKey", "MyAnnotationData");
rootSubSegment.addMetadata("MyMetaDataKey", "MyMetaData");
const s3SubSegment = AWSXRay.getSegment().addNewSubsegment("Do S3 Stuff");
...
s3SubSegment.close();
rootSubSegment.close();
答案 0 :(得分:1)
您只需要存根const crypt = require( 'crypt3/sync' ),
key = "password",
hash = /* stored hash */;
if ( crypt( key, hash ) !== hash ) {
// access denied
return false;
}
即可返回具有存根getSegment
属性的对象。
看起来您的代码会在需要时立即运行,因此您需要确保存根在位,然后再在测试中输入代码。
这是一个使您入门的有效示例测试:
addNewSubsegment