Sinon.Stub im Knoten mit AWS-SDK
Ich versuche, eine Testberichterstattung für eine App zu schreiben, die das @ verwendeaws-sdk
NPM-Modul, das die Dinge in eine SQS-Warteschlange hochschiebt, aber ich bin nicht sicher, wie ich die Dinge richtig verspotten soll.
Hier ist mein Test bisher:
var request = require('superagent'),
expect = require('chai').expect,
assert = require('chai').assert,
sinon = require('sinon'),
AWS = require('aws-sdk'),
app = require("../../../../app");
describe("Activities", function () {
describe("POST /activities", function () {
beforeEach(function(done) {
sinon.stub(AWS.SQS.prototype, 'sendMessage');
done();
});
afterEach(function(done) {
AWS.SQS.prototype.sendMessage.restore();
done();
});
it("should call SQS successfully", function (done) {
var body = {
"custom_activity_node_id" : "1562",
"campaign_id" : "318"
};
reqest
.post('/v1/user/123/custom_activity')
.send(body)
.set('Content-Type', 'application/json')
.end(function(err, res) {
expect(res.status).to.equal(200)
assert(AWS.SQS.sendMessage.calledOnce);
assert(AWS.SQS.sendMessage.calledWith(body));
});
});
});
});
Der Fehler, den ich sehe, ist:
1) Activities POST /activities "before each" hook:
TypeError: Attempted to wrap undefined property sendMessage as function
2) Activities POST /activities "after each" hook:
TypeError: Cannot call method 'restore' of undefined
Ich bin ein bisschen ein newb wenn es darum gehtsinon.stub
oder Objekte in JavaScript verspotten, bitte entschuldigen Sie meine Unwissenheit