Ich bin wirklich neu zu Mocha/Chai/Sinon und Tests im Allgemeinen. Ich habe es geschafft, einen einfachen Express-Server erfolgreich zu testen, eine Funktion, die Versprechen verspricht, und ein grundlegendes Setup, um meine Nase nass zu machen. aber ich stecke auf Spies/Stubs/Mocks.Wie kann ich eine verschachtelte Abhängigkeit in mit Sinon
Meine Faust Schluckauf versucht, diese glob zu prüfen hat in einem externen Modul aufgerufen wurde:
//in utils.js
var glob = require('glob');
module.exports = {
funToTest: function (msg, callback) {
console.log(msg);
glob('*md', {
cwd: 'files/'
}, function (err, files) {
console.log(files);
});
callback();
callback();
}
};
Mit einem Mokka/chai/sinon/Sinon-chai Kombination:
// in utils-test.js
var utils = require('utils.js');
var glob = require('glob');
describe('Utils', function() {
describe('funToTest method', function() {
const callback = sinon.spy();
const globSpy = sinon.spy(glob);
before(function (done) {
utils.funToTest('Files:', callback);
done();
});
// This PASSES fine
it ('should call our callback twice', function() {
expect(callback).to.have.been.calledTwice;
});
// This NOT SO MUCH
it('should call glob once', function() {
expect(globSpy).to.have.been.calledOnce;
});
)};
)};
Die oben scheitert mit einem Assertionsfehler:
AssertionError: expected glob to have been called exactly once, but it was called 0 times
Also wie spioniere ich auf die Glob-Abhängigkeit in utils.funToT aus est um zu sehen, ob man angerufen wird?
Dank wie immer für alle Hinweise ...
Haben Sie versucht "erwarten (globspy.calledOnce) .to.be.true"? –