Функция-заглушка 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 позже, чтобы предотвратить кэширование. Все еще не повезло.

0 ответов

Другие вопросы по тегам