При использовании jest
с модулями ES6 и babel-jest
все вызовы jest.mock
поднят .
Допустим, я хотел бы смоделировать модуль fs
для тестируемого класса, но сохраните исходную реализацию для остальных модулей (например, некоторые утилиты, которые я использую во время теста).
Рассмотрим следующий пример:
class UnderTest {
someFunction(){
fs.existsSync('blah');
}
}
class TestUtility {
someOtherFunction(){
fs.existsSync('blahblah');
}
}
тест:
it('Should test someFunction with mocked fs while using TestUtility'', () => {
testUtility.someOtherFunction(); // Should work as expected
underTest.someFunction(); // Should work with mock implementation of 'fs'
})
Теперь можно ожидать, что при следующем подходе модуль fs
будет смоделирован для UnderTest
, но не для TestUtility
.
import {TestUtility} from './test-utility';
jest.mock('fs');
import {UnderTest } from './under-test';
Однако из-за подъема *Модуль 1021 * будет проверен на все модули (что нежелательно).
Есть ли способ достичь описанного поведения?