У меня проблемы с использованием jest.setMock
с установленными зависимостями
Итак, у меня есть функция для тестирования, которая требует my-module
зависимости:
// my-module/index.js
import { hello } from 'my-dep';
export const doSomething = () => {
return hello();
};
// my-dep
// location: my-module/node_modules/my-dep/index.js
export const hello = () => {
return 'dude';
};
У меня "npm связанный" my-module
в моем app
:
cd my-module
npm link
cd app
npm link my-module
Я написал тестовый файл следующим образом:
// app/feature.test.js
jest.setMock('my-dep', {
hello: () => 'world'
});
const { doSomething } = require('my-module');
it('should return dude', () => {
expect(doSomething()).toBe('dude');
});
Я не понимаю, почему насмешка my-dep
не сработала и вызвала действительную функцию hello()
.
Когда я попытался использовать файл my-module
в качестве относительной зависимости импорта & установки my-dep
, сработало насмешливо:
// app/feature.test.js
jest.setMock('my-dep', {
hello: () => 'world'
});
const { doSomething } = require('./my-module');
it('should return world', () => {
expect(doSomething()).toBe('world');
});
Что мне здесь не хватает?
Окружающая среда:
Бинарные:
- Узел: 8.9.4
- Пряжа: 1.3.2
- нпм: 5,6,0
npmPackages:
- шутка: ^ 22.4.3 => 22.4.3
Некоторые связанные вопросы:
- https://github.com/facebook/jest/issues/701
- https://github.com/facebook/jest/issues/796