【发布时间】:2015-05-12 17:14:43
【问题描述】:
对于我的以下代码S3Handler,我有以下测试,它返回错误:TypeError: undefined is not a function。
抛出错误的那一行是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);
});
});
});
});
【问题讨论】:
-
哪一行报错?
-
testedModule._get(bucketName, imgName, function () {
标签: node.js testing amazon-s3 sinon