Wenn eine Datei mit folgendem Inhalt erstellenSinon Anstoßen nicht auf module.exports
const validateEmail = email => {
sendEmail(email);
};
const sendEmail = email => {
return true;
};
module.exports = {
validateEmail,
sendEmail,
};
Und ein Test, der die zweite Funktion zu Stub versucht ...
it('Should call sendEmail if a valid email is passed',() => {
let sendEmailSpy = sinon.stub(checkEmail, 'sendEmail');
checkEmail.validateEmail('[email protected]');
assert.isTrue(sendEmailSpy.called);
});
Es ruft immer noch die sendEmail
Funktion und der Test fehlschlägt
Allerdings, wenn ich die module.exports
so schreiben:
module.exports = {
validateEmail(email) {
this.sendEmail(email);
},
sendEmail(email) {
return true;
},
};
Es stubs es richtig ... Warum?
Riiight ok. Gibt es eine Möglichkeit, das erste Szenario zu verwenden? – OmisNomis
@OmisNomis basiert nicht auf Ihrer aktuellen Implementierung Nein, es muss extern zugänglich sein, um es stub. Was ist los mit dem zweiten Ansatz? – James
nichts. Ich war nur fasziniert :-) – OmisNomis