适用于AWS X-Ray呼叫的Sinon Stub

时间:2019-06-13 15:22:17

标签: sinon aws-sdk-js aws-sdk-nodejs

我正在尝试为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();

1 个答案:

答案 0 :(得分:1)

您只需要存根const crypt = require( 'crypt3/sync' ), key = "password", hash = /* stored hash */; if ( crypt( key, hash ) !== hash ) { // access denied return false; } 即可返回具有存根getSegment属性的对象。

看起来您的代码会在需要时立即运行,因此您需要确保存根在位,然后再在测试中输入代码。

这是一个使您入门的有效示例测试:

addNewSubsegment