J'ai un module:Puis-je espionner avec sinon un appel de fonction dans une fonction de module externe?
let xmlParser = require('./myTools').xmlParser;
function extractDataAndWrite(xmldata) {
let doc = xmlParser(xmldata);
...
}
module.exports = {
extractDataAndWrite,
};
maintenant je veux tester l'appel de xmlParser
dans extractDataAndWrite
:
var extractDataAndWrite = require('../services/importData.js').extractDataAndWrite;
var mytools = require('./myTools');
var sinon = require('sinon');
describe('Test extractDataAndWrite', function() {
it('call xmlParser', function(done) {
var xmlParserSpy = sinon.spy(mytools, 'xmlParser');
extractDataAndWrite("someXML");
console.log('xmlParserSpy: ' + xmlParserSpy.callCount);
done();
});
});
Je pense obtenir xmlParserSpy.callCount == 1
mais il est 0! Mon espion ne fonctionne pas, que dois-je changer?
a ajouté une réponse qui explique pourquoi il ne fonctionne pas, ainsi qu'un technique qui peut résoudre votre problème – oligofren