Когда я тестирую свой проект реакции с помощью шутки и энзима, я сталкиваюсь с этой проблемой, `TypeError: символ не является функцией
44 | test('PROVA', () => {
> 46 | const wrapper = mount(<I18nextProvider i18n = {i18n}><MemoryRouter><LoggedSearch t = {(k) => 'translate hardcoded'} userData = {Artist}/></MemoryRouter></I18nextProvider>,{context});
| ^
47 | console.info(wrapper.debug());
48 | wrapper.find('#ButtonSearch').simulate('click', { preventDefault() {} });
49 | expect(true).toBe(true)
at setValueForProperty (../node_modules/react-dom/cjs/react-dom.development.js:2909:46)
Теперь это мой тест
test('PROVA', () => {
//const wrapper = mount(<LoggedSearch t = {key=>key} userData = {Artist}/>);
const wrapper = mount(<I18nextProvider i18n = {i18n}><MemoryRouter><LoggedSearch t = {(k) => 'translate hardcoded'} userData = {Artist}/></MemoryRouter></I18nextProvider>,{context});
console.info(wrapper.debug());
wrapper.find('#ButtonSearch').simulate('click', { preventDefault() {} });
expect(true).toBe(true)
});
В <LoggedSearch/> компонент экспортируется с именованным экспортом и импортируется в мой тестовый файл как import {LoggedSearch} from "../components/LoggedSearch";.
Значит, компонент должен быть импортирован в чистом виде, без декора, как i18n, верно? . Я не понимаю, почему тест не проходит с этой ошибкой TypeError: symbol is not a function, я думаю, что это проблема i18n, потому что, когда я использую мелкую глубину вместо монтирования, она работает, но я не могу проверить функцию с мелкой. Спасибо





Я не уверен, что это именно ваша проблема, но это может быть связано с тем, как вы импортируете изображения через веб-пакет, импортируя. Это могло быть похоже на проблему это.
У меня была такая же проблема, это было связано с изображениями, импортированными через веб-пакет. Я решил это, создав fileMock.js с:
module.exports = 'test-file-stub';
Тогда в конфигурации шутки:
"moduleNameMapper": {
"\\.(css|scss)$": "identity-obj-proxy",
"\\.(png|svg|pdf|jpg|jpeg)$": "<rootDir>/__mocks__/fileMock.js"
}
Подробнее здесь: https://jestjs.io/docs/en/webpack