Шутка: как использовать реальный модуль в конкретном тесте? - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь смоделировать некоторые узловые модули для большинства тестов, в соответствии с do c Я помещаю макетные файлы в папку __mocks__, но я также хочу использовать настоящий модуль в определенном тест, я пробовал jest.unmock ('some-module'), но не работает.

это моя структура проекта:

├──__mocks__
│   └── foo.js
│──doSomething.js
│──test.js

__ mocks __ / foo. js

const foo = jest.genMockFromModule('foo');
module.exports = foo;

doSomething. js

const foo = require('foo');

const doSomething = () => {
  foo.bar();
};

module.exports = doSomething;

test. js

const doSomething = require('./doSomething');

describe('Test', () => {
  it('doSomething() should call foo.bar', () => {
    doSomething();

    expect(foo.bar).toBeCalled();
  })

  it('use real foo module', () => {
    // How could I use real foo module in this test?

    jest.unmock('some-module'); // not working
    doSomething();
  })

})

1 Ответ

1 голос
/ 07 февраля 2020

Вы можете использовать requireActual для обхода модуля:

const doSomething = jest.requireActual('some-module');
doSomething();

Документы: https://jestjs.io/docs/en/bypassing-module-mocks

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