Я пытаюсь смоделировать свойство объекта, который действует как объект и как функция одновременно.Вот код:
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
.