2015-05-12 76 views
1

對於我的以下代碼,S3Handler,我有以下測試,它返回錯誤:TypeError: undefined is not a functionnodejs test - TypeError:undefined不是函數

行引發錯誤就是testedModule._get(bucketName, imgName, function() {

爲什麼會出現這個錯誤?

S3Handler

'use strict'; 

var s3 = new (require('aws-sdk')).S3(); 

var S3Handler = {}; 

S3Handler._get = function (bucketName, imgName, callback) { 

    var params = { 
     Bucket: bucketName, 
     Key: imgName 
    }; 

    s3.getObject(params, function (error, data) { 
     if (error) { 
      return callback(error, null); 
     } 
     console.log(data); 
     return callback(null, data); 
    }); 
}; 

測試:

describe("S3Handler", function() { 
    describe("S3Handler._get", function() { 
     var testedModule, imgName, callbackSpy, bucketName, getStub, fakeResponse, s3Stub; 

     before(function() { 

      fakeResponse = {Body: "Image content"}; 

      imgName = "test.jpg"; 

      bucketName = "testBucket"; 

      callbackSpy = sinon.spy(); 

      getStub = sinon.stub(); 

      s3Stub = sinon.stub().returns({getObject: getStub}); 


      testedModule = proxyquire("../S3Handler.js", { 
       'aws-sdk': { 
        "S3": s3Stub 
       } 
      }); 
     }); 

     it("fetch object from S3Bucket", function() { 
      getStub.withArgs(bucketName, imgName).callsArgWith(1, null, fakeResponse); 
      testedModule._get(bucketName, imgName, function() { 
       callbackSpy.apply(null, fakeResponse); 
      }); 
     }); 
    }); 
}); 
+0

哪一行會引發錯誤? – marekful

+0

'testedModule._get(bucketName,imgName,function(){' – hyprstack

回答

0

所以當然,要累時確實幫助更多的關注。

這也將有助於如果我已經出口我的模塊!

'use strict'; 

var s3 = new (require('aws-sdk')).S3(); 

var S3Handler = {}; 

S3Handler._get = function (bucketName, imgName, callback) { 

    var params = { 
     Bucket: bucketName, 
     Key: imgName 
    }; 

    s3.getObject(params, function (error, data) { 
     if (error) { 
      return callback(error, null); 
     } 
     console.log(data); 
     return callback(null, data); 
    }); 
}; 

module.exports = S3Hanlder; 
相關問題