Sinon hakkında bilgi edinmek ve console.log
numaralı telefondan casusluk yapmak istiyorum.Konsol.log'da Sinon casus çağrı kayıtlı değil
function logToConsole() {
console.log('Hello World');
}
exports.logToConsole = logToConsole;
Ama bunu test etmek istiyorsanız console.log
çağrısı test edilen sistemin içine kayıtlı olmadığından, bu çalışmaz:: Kod basittir Ancak yürütmek eğer
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;
});
});
Test kendisi içeride console.log
, aynen alınıp geçer:
it('should spy on console.log', function() {
sinon.spy(console, 'log');
sut.logToConsole();
console.log('Test');
expect(console.log).to.have.been.called;
});
İlginçtir, hiç çağırır iç işlevine gözetlemek mümkün görünmemektedir. Bu casusluk kütüphanesinin amacı değil mi?
örn.
chai.use(sinonChai);
EDIT:
aslındasinon-chai
kullanmadığınız anlaşılıyor
function a() {};
function b() {
a();
}
Sorgumda yazmayı unuttum, ama bir şeyi değiştirmiyor. –
@ninive Benim için çalışan daha ayrıntılı bir örnek ekledim. – robertklep
Bu, 'Merhaba Dünya'yı test konsoluna gönderecek - bunu nasıl gizleyeceksiniz? – maasha