шутка издеваться над свойством, которое является объектом и функцией одновременно - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь смоделировать свойство объекта, который действует как объект и как функция одновременно.Вот код:

index.js

const nock = require('nock');

async myFunc() {
  nock.back.setMode('param1');
  const { nockDone } = await nock.back('param1', 'param2');
  nock.enableNetConnect('param1');
  return nockDone;
}

module.exports { myFunc }

Моя цель - смоделировать объект nock таким образом, чтобы я мог утверждать, что когда вызывается myFunc, вызывается nock.back сparam1 и param2.

Для этого у меня есть следующий тест:

index.test.js

const nock = require('nock');
const subjectUnderTest = require('./index');

const nockBackImplementation = jest.fn();
nockBackImplementation.setMode = jest.fn();

const nockBackMock = jest.spyOn(nock, 'back');
nockBackMock.mockImplementation(() => nockBackImplementation);

describe('test', () => {
  it('calls nock.back with the proper parameters', () => {
    subjectUnderTest.myFunc();

    expect(nockBackMock).toHaveBeenCalledWith('param1', 'param2');
  });
});

По какой-то причине тест не проходит, говоря, что макетфункция не была вызвана и также выдает эту ошибку:

UnhandledPromiseRejectionWarning: TypeError: nock.back.setMode is not a function

Я не уверен, как правильно издеваться nock.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...