Почему использование метода-заглушки не работает на Sinon.js? - PullRequest
0 голосов
/ 27 марта 2019

По какой-то причине я не могу заглушить метод обслуживания.

Мой сервис содержит метод с именем ' complete ', который я хотел бы заглушить для проверки входных параметров. (Это может быть не лучшим, но я понимаю, что это должно работать). Во всяком случае, метод не заглушен.

describe('test suite', () => {
  const httpMocks = require('node-mocks-http');
  const service = new MyService(sinon.createStubInstance(MyRepository));
  const controller = new MyController(service);
  const request = httpMocks.createRequest();
  const response = httpMocks.createResponse();
  let methodStub: sinon.SinonStub;

  beforeEach(async () => {
    methodStub = sinon.stub(service, 'complete');
    methodStub.callsFake(async (
      arg1: string,
      arg2: string
    ) => {
      chai.assert(arg2 === 'something');
      Promise.resolve();
    });
  });

  afterEach(async () => {
    methodStub.restore();
  });

  it.only('should complete a task', async () => {
    await controller.complete(request, response);

    chai.assert(response.statusCode === 200, 'response should have statusCode 200 as successful');
    chai.assert(methodStub.called, 'methodStub has been called');
  });
});

Что я должен сделать, чтобы правильно его заглушить? Что я делаю не так?

Я ценю любую помощь!

...