私はkarma-webpack
を使用していますが、Reactコンポーネントを複数の場所でリファクタリングしています。私はコンポーネント を自分のファイルに移動したので、インポートすることができます。connectmapStateToProps
/mapDispatchToProps
をHOCに適用して後で自分のページに組み込みます。ここでRedux + karma-webpack - React.Componentのインポート時にdisplayNameが未定義です。
はシナリオです:
EventTable
- import
S EventTableComponent、輸出connect
編/包まれたコンポーネント MyEventTable
- コンポーネント EventTableComponent
包まimport
のEventTableComponent、輸出connect
edは/ - 小道具/行動は、データをレンダリングするために共有定義します行
git mv
EventTableをEventTableComponent
に変更し、コードをリファクタしてconnected
のものがHOCにある場合、テストが開始されます。輸入に失敗したのはEventTableComponent
karma-webpack
のみです。 Chromeはうまく動作し、ビューは完全にレンダリングされます。 QAは満足していますが、ビルドに失敗します。 WrappedComponent
は、概要(cannot read displayName of undefined
)にメッセージをスローするconnect
を引き起こしEventTable
とMyEventTable
部品、のために定義されていないので、
ビルドが失敗しているが、私も、私のテストにこれらのファイルのいずれかをインポートしないでください!代わりに、カルマwebpackがビルド中ではなく、テストを実行する前に失敗します。
私は、ビューを破壊し、このように「偽」/「交換」を行うことで、ローカルビルドを固定:
function EventTableComponent() {
return (<div>garbage here</div>);
}
ビルドが通ります。
これで最も混乱する部分は何ですか?私は、でHOC をテストすることさえできません。 EventTableComponentだけをテストにインポートしますが、karma-webpack
は、the Redux Documentationで提案されています。
私が説明するための最小限の例の要点を書いた: https://gist.github.com/zedd45/cbc981e385dc33d6920d7fcb55e7a3e0
Wout Mertens(Webpack Gitterから)は、 'import'を' require'に置き換えることを提案しました。これによりテストが合格しましたが、インポートがアプリで動作しなくなったため、Componentはレンダリングされませんでした。 – zedd45