私はAWSラムダのノードハンドラで作業しています。私はその機能から統合テストをして別のファイルを作成する必要がありますが、sinonまたはmockeryでトランスポータをモックできません。node.js mock sendmailer transporter inside function
index.js機能:
var nodemailer = require('nodemailer');
exports.handler = (event, context, callback) =>
{
var transporter=createTransporter();
transporter.sendMail(data, function (error, success) {
console.log(error);
response = getResponse(404, error);
}
callback(null, response);
});
}
function createTransporter() {
return nodemailer.createTransport({
service: "SMTP",
auth: {
user: "[email protected]",
pass: "XXXX"
}
});
}
目的は、それが呼び出されたときに、モカでのJavaScriptファイルテスト内の任意の電子メールを送信し、期待does notのように)(関数createTransporterを模擬することです:
var mockery = require('mockery');
var nodemailerMock = require('nodemailer-mock');
var index = require("../index.js");
describe("The handler function tests", function() {
before(function() {
mockery.enable({
warnOnUnregistered: false
});
mockery.registerMock('nodemailer', nodemailerMock);
});
it('JSON error html ', function() {
var callback = function (name, response) {
expect(JSON.stringify(response.statusCode)).to.be('404');
};
var context = {};
index.handler(event, context, callback);
});
});
https://github.com/doublesharp/nodemailer-mockを見ましたか? –
私は多分何か間違ったことをしました – acknowledge101