Ich habe 2 Dateien.Kann die Funktion innerhalb einer Klasse, die über den Ereignisemitter in node.js stimuliert wird, nicht ausspionieren.
listener.js:
'use strict';
var events = require('./g-events');
function start() {
console.log('starting');
}
events.on(events.ACTIVITY_EVENT, function() {
console.log('i am in here');
start();
});
// Public functions
module.exports = {
start: start
};
mit Ereignissen wie folgt definiert:
'use strict';
var EventEmitter2 = require('eventemitter2').EventEmitter2;
var m = new EventEmitter2({
newListener: false,
maxListeners: 20
});
m.ACTIVITY_EVENT = 'activityEvent';
module.exports = m;
eine Testklasse geschaffen, die den Endpunkt testet.
Wenn der Test läuft, ist die Ausgabe "ich bin hier" und dann "Start". Warum überschreibt es nicht ordnungsgemäß die in meinem Test definierte Startfunktion?
Innerhalb Ihrer Testfunktion bezieht sich 'listener.start' auf das' module.exports' Objekt von 'listner.js', das Ändern wird nur die Objekteigenschaft modifizieren; nicht die 'start()' -Funktion in 'listener.js' – zeronone
Was ist der richtige Weg, um die Startmethode auszugeben? Mein Endziel ist es mit Sinon auszudrücken. – neelzp