2016-09-14 7 views
2

Zunächst einmal, ich bin nicht Lambda verwenden, so glaube ich, this thread nicht die gleiche Frage.AWS Mocking mit dwyl/aws-sdk-Mock nicht funktioniert

Ich bekomme diese Fehler in der before Haken:

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) 

ich nie dieses Modul verwendet habe, bevor ich auch nicht viel Erfahrung mit sinon.js haben.

Hier ist mein Modul:

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() 
} 

Hier ist mein Testskript:

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') 
    }) 
}) 

Gedanken?

Antwort

2

Ich habe das gleiche Problem. Bitte überprüfen Sie unter node-modules -> aws-sdk version. Meine war 2.6.2 und es hat nicht funktioniert. Temporary Fix ist aws-sdk 2.5.5 Version zu verwenden. Wahrscheinlich bald werden sie für alle Versionen beheben, wie es in aws-sdk-Mock-Modul angegeben ist. aws-sdk-Mock sollte mit allen aws-sdk-Versionen größer als 2.3.0.

0

ich konfrontiert zu dem gleichen Problem, aber versuche DynamoDB statt S3 zu verspotten. Hatte ein Problem für das gleiche protokolliert. Der Fehler wurde nun mit der neuesten Version von aws-sdk (v2.6.4) behoben. Wäre toll, wenn Sie es auf die neueste Version 2.6.4 zeigen.

Danke, Zaid