Sinon js AssertError: ожидание вызова заглушки один раз, но вызов 0 раз - PullRequest
0 голосов
/ 05 июня 2018

Я изучал Sinon JS для модульного тестирования, и я пытаюсь заставить этот пример кода работать.У меня есть простая "внешняя" библиотека, созданная:

class MyLib {

   simpleMethod () {
      return 'some response';
   }

   static handler() {
      const myLib = new MyLib();
      myLib.simpleMethod();
   }
}

module.exports = MyLib;

Затем у меня есть простой набор тестов:

const chai = require('chai');
const sinon = require('sinon');
const MyLib = require('./my-lib');

describe ('sinon example tests', () => {

  it ('should call simpleMethod once', () => {
     let stubInstance = sinon.stub(MyLib, 'simpleMethod');

     MyLib.handler();

     sinon.assert.calledOnce(stubInstance);
  });

});

Но я возвращаюсь с ошибкой "AssertError: ожидаемая заглушка длябыть вызванным один раз, но был вызван 0 раз ".Я знаю, что это, вероятно, очевидно, но почему simpleMethod не вызывается?

1 Ответ

0 голосов
/ 05 июня 2018

simpleMethod - это метод экземпляра.Чтобы заглушить метод экземпляра, вы должны заглушить прототип.

Попробуйте это в своем коде.

myStub = sinon.stub(MyLib.prototype, 'simpleMethod');

Не забудьте восстановить заглушку в конце теста.

myStub.restore();
...