Node.js Sinon存根和测试AWS-SDK承诺

Node.js Sinon存根和测试AWS-SDK承诺,node.js,mocha.js,sinon,aws-sdk-nodejs,aws-sdk-js,Node.js,Mocha.js,Sinon,Aws Sdk Nodejs,Aws Sdk Js,//正在测试的类 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(); //测试班 describ

//正在测试的类

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();
//测试班

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。我的问题是,如何测试此调用是否具有正确的参数并按预期返回承诺。目前,测试失败,但有一个例外:

TypeError:索引1处的参数不是函数:未定义