Sinon存根并testingAWS-SDK的承诺

//正在testing的类

var AWS = require('aws-sdk'); var s3Export = function() { var s3Client = new AWS.S3(); this.getObject => (params) => { return s3Client.getObject(params).promise(); } }; module.exports.S3 = new s3Export(); 

//testing类

 describe('s3-wrapper-tests', function() { var app, aws, s3, getObjectData = {Bucket: 'test-bucket', Key: 'test-file'}, deleteObjectData, deleteObjectsDatas, putObject; before(() => { s3 = sinon.stub({ getObject: function(params) { getObjectData = params; return Promise.resolve( {Body: ['a','b','c']} ); }); aws = sinon.stub(AWS, 'S3'); aws.returns(s3); app = proxyquire(modulePath, {'aws-sdk': aws } ); }); after(() => { aws.restore(); }); beforeEach(() => { s3.getObject.reset(); s3.getObject.callsArgWith(0, getObjectData); }); it('test message', () => { return app.S3.getObject( {Bucket: 'test-bucket', Key: 'test-file'}).then(() => { const args = s3.getObject.getCall(0).args[0]; expect(args).to.not.be.null; }); }); }); 

我的问题是Sinon的callsWithArgs方法和promise的aws-sdk。 我的问题,我怎么能testing这个调用是用正确的参数进行的,并返回一个预期的承诺。 现在,testing失败,例外:

TypeError:索引1处的参数不是函数:undefined