用dwyl / aws-sdk-mock嘲笑AWS不起作用

首先,我不使用lambda,所以我相信这个线程不是同一个问题。

before钩子before得到这个错误:

 TypeError: Attempted to wrap undefined property S3 as function at checkWrappedMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:78:29) at Object.wrapMethod (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/util/core.js:121:21) at Object.stub (node_modules/aws-sdk-mock/node_modules/sinon/lib/sinon/stub.js:67:26) at mockService (node_modules/aws-sdk-mock/index.js:67:27) at Object.AWS.mock (node_modules/aws-sdk-mock/index.js:43:5) at Context.<anonymous> (myModule.spec.js:14:9) 

我从来没有使用过这个模块,我也没有太多的经验与sinon.js。

这是我的模块:

 var AWS = require('aws-sdk') const https = require('https') module.exports = function () { var s3 = new AWS.S3({ httpOptions: { agent: new https.Agent() }, signatureVersion: 'v4' }) return s3.getObject({Bucket: 'somebucket', Key: 'somekey'}).promise() } 

这是我的testing脚本:

 const chai = require('chai') const chaiAsPromised = require('chai-as-promised') const AWS = require('aws-sdk-mock') const myFunc = require('./myModule') chai.use(chaiAsPromised) const expect = chai.expect chai.should() describe('Get MMS API Key', function () { before(function () { AWS.mock('S3', 'getObject', function (params, callback) { callback(null, 'dummy-data') }) }) it('Should get dummy data', function () { myFunc().should.eventually.equal('dummy-data') }) after(function () { AWS.restore('S3', 'getObject') }) }) 

思考?

我有同样的问题。 请检查节点模块 – > aws-sdk版本。 矿是2.6.2,它不工作。 临时修复是使用aws-sdk 2.5.5版本。 可能不久,他们将修复所有版本,如在aws-sdk-mock模块中所述。 aws-sdk-mock应该可以与2.3.0以上的所有aws-sdk版本一起工作。

我也面临同样的问题,但试图嘲笑DynamoDB而不是S3。 已经logging了相同的问题。 这个bug现在已经被最新版本的aws-sdk(v2.6.4)修复了。 如果你把它指向最新的版本2.6.4将是很好的。

谢谢,Zaid