Функция-заглушка sinon.stub не вызывается
У меня есть функция для тестирования, функция имеет асинхронный вызов службы, но она запущена и забыла, поэтому в тесте ниже я указал setTimeout:
function testfunction() {
objectService.serviceFn(abc, xyz, function(err, resp) {
});
}
Я хочу проверить, была ли вызвана асинхронная служба или нет. Это сетевой сервис, поэтому замените его заглушкой.
(Обратитесь к разделу Как проверить, была ли вызвана функция A внутри тестовой функции B, если она была вызвана асинхронно для тестирования функции "забей и забудь")
В тесте я делаю
describe('functions' , function() {
const objectService = require('../service');
beforeEach(() => {
var stub = sinon.stub(objectService,
'serviceFn').callsFake(function(data, data2, cb) {
cb("Some stub data");
});
});
describe('test testfunction', function () {
it('tests function', function(done) {
testfunction();
setTimeout(() => {
// check if spy was called
//assert.ok(gusUpdateItem.calledOnce);
sinon.assert.called(gusUpdateItem);
done();
}, 200);
});
});
});
Происходит следующее: sinon.assert.called - ложь, и вызывается оригинальная сервисная функция. Я попытался разместить оператор require позже, чтобы предотвратить кэширование. Все еще не повезло.