Sinon-Spion auf der Konsole.melden Sie rufen nicht registriert

Ich versuche zu lernen über Sinon und wollen, um Spion auf console.log. Der code ist einfach:

function logToConsole() {
    console.log('Hello World');
}

exports.logToConsole = logToConsole;

Aber wenn ich es testen möchte, es funktioniert nicht, weil der Aufruf console.log ist nicht registriert im system unter test:

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;
    });
});

Aber wenn ich ausführen console.log im inneren der test selbst, es ist gefangen und übergibt:

it('should spy on console.log', function() {
    sinon.spy(console, 'log');

    sut.logToConsole();
    console.log('Test');

    expect(console.log).to.have.been.called;
});

Interessant, es scheint nicht in der Lage sein, um Spion auf der innen-Funktionsaufrufe an alle. Ist das nicht der Zweck einer Spionage-Bibliothek?

z.B.

function a() {};

function b() {
    a();
}
InformationsquelleAutor | 2015-04-22
Schreibe einen Kommentar