Я использую karma-webpack
и рефакторинг компонента React для использования в нескольких местах. Я переместил компонент в его собственный файл, поэтому я могу импортировать его и подключить по-другому, применив mapStateToProps
/ mapDispatchToProps
в HOC, который я позже включу на свою страницу.
Вот сценарий:
EventTable
- import
s EventTableComponent, экспортирует connect
ed/обернутый компонент MyEventTable
- import
s EventTableComponent, экспортирует connect
ed/обернутый компонент EventTableComponent
- определяет реквизиты/поведения, используемые для рендеринга строк данных
Когда я преобразовал EventTable git mv
в EventTableComponent
и реорганизовал код таким образом, чтобы элементы connected
оказались в HOC, тесты перестали импортировать EventTableComponent
только в karma-webpack
. Chrome работает просто отлично, и представление отображается отлично. QA доволен или был бы счастлив, но моя сборка не работает.
Сборка завершается ошибкой, потому что WrappedComponent
не определено для компонентов EventTable
и MyEventTable
, из-за чего connect
выдает сообщение в синопсисе (cannot read displayName of undefined
), но я даже не импортирую ни один из этих файлов в свой тест! Вместо этого он терпит неудачу во время сборки karma webpack, но до запуска каких-либо тестов.
Я исправил сборку локально, уничтожив представление и сделав «подделку»/«замену» следующим образом:
function EventTableComponent () {
return (<div>garbage here</div>);
}
Сборка проходит.
Самая запутанная часть во всем этом? Я даже не тестирую HOC вообще. Я импортирую в тест только EventTableComponent, но karma-webpack
, как это предлагается в Redux. Документация.
Для иллюстрации я написал минимальную суть примера: /а>
imports
наrequire
. Это привело к прохождению тестов, но импорт перестал работать в приложении, поэтому компонент не отрисовывался. - person zedd45   schedule 26.08.2016