У меня есть базовое приложение на основе create-react-app
, что означает, что его конфигурация jest
также используется по умолчанию. Моя структура папок выглядит следующим образом:
src
└── __mocks__
└── Item.js
└── __tests__
└── Item.test.js
└── List.test.js
└── Item.js
└── List.js
Мой макет довольно прост - я получаю исходный компонент, который обернут в react-dnd
контекст:
.. / __ издевается __ / Item.js
import Item from "../Item"
export default Item.DecoratedComponent
В моем Item.test.js , если я импортирую напрямую из папки __mocks__
, мои тесты выполняются очень хорошо:
import Item from '../__mocks__/Item'
Однако я бы вместо этого поручил jest
использовать смоделированную версию этого модуля, что-то вроде этого:
import Item from '../Item'
jest.mock('../Item')
Причина, по которой я хочу это сделать, заключается в том, что когда я пишу тесты для компонента List
, который внутренне отображает несколько компонентов Item
, я не буду импортировать компоненты Item
непосредственно в List.test.js
, но вместо этого я хотел бы также проинструктировать jest
использовать смоделированный модуль Item
.
Вышеописанное, однако, не работает для меня, то есть в моих тестах, похоже, используется оригинальный компонент Item
, хотя есть предположения, что это должно работать .
Что я делаю не так? Как мне указать jest
, как правильно использовать макетный экземпляр модуля?