Ich versuche, über Sinon zu lernen und spionieren wollen console.log
. Der Code ist einfach:Sinon Spion auf console.log Anruf nicht registriert
function logToConsole() {
console.log('Hello World');
}
exports.logToConsole = logToConsole;
Aber wenn ich es testen wollen, funktioniert es nicht, weil der Aufruf von console.log
nicht innerhalb der zu testende System registriert ist:
var chai = require('chai'),
expect = chai.expect,
sinonChai = require('sinon-chai'),
sinon = require('sinon'),
sut = require('../src/logToConsole');
chai.use(sinonChai);
describe('logToConsole', function() {
it('should spy on console.log', function() {
sinon.spy(console, 'log');
sut.logToConsole();
expect(console.log).to.have.been.called;
});
});
Allerdings, wenn ich ausführen console.log
innerhalb des Tests selbst wird gefangen genommen und gelangt:
it('should spy on console.log', function() {
sinon.spy(console, 'log');
sut.logToConsole();
console.log('Test');
expect(console.log).to.have.been.called;
});
Interessanterweise nicht auf innere Funktion nutzen zu können auszuspionieren scheint überhaupt nennt. Ist das nicht der Zweck einer Spionage-Bibliothek?
z.B.
function a() {};
function b() {
a();
}
Sorry vergessen, es in meine Frage zu schreiben, aber es ändert nichts. –
@ninive Ich habe ein ausführlicheres Beispiel hinzugefügt, das für mich funktioniert. – robertklep
Dies wird "Hallo Welt" auf die Testkonsole ausgeben - wie kann man das ausblenden? – maasha