私は最近、反応プロジェクトでまだES6を使用していない仕事を取った。私はES6の背景を持っていて、ES6を使わずにテストする方法を理解できない大きなファイルを書きました。どうやって私的な反応コンポーネントをテストするのですか
基本的には、主に7つ程度のプライベートコンポーネントがあり、そのコンポーネントは読みやすさ、テスト、パフォーマンスのために別々のコンポーネントとして構築されています。ここで
を(プライベートコンポーネントにすべきコンポーネントのアップデートが大きな後押しで持つことができることは)私の問題です:
私のプライベートコンポーネントをエクスポートせずに、私はテストにそれらを書くための方法を見つける傾けます。
我々はES6を使用していないので、私は
export default MyComponent
export PrivateComponent1
export PrivateComponent2
構文を使用しカント、単一のファイルから複数のコンポーネントをエクスポートする私の知っている唯一の方法は、しかし、これを
exports.MyComponent = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
を使用することですいいえ私は使用する必要がある声明の中で
const MyComponent = require('MyComponent').MyComponent
理想的に私は何かを使用したいと思いますike:
module.exports = MyComponent
exports.PrivateComponent1 = PrivateComponent1
exports.PrivateComponent2 = PrivateComponent2
しかし、それは有効ではないようです。
さらに、これを別々のファイルに分割しないことをお勧めします。これは私がTDDをやっていないために得るものです:(
1つのファイルに複数のコンポーネントがあるのはなぜですか?理想的には、たとえ他のコンポーネントが1つだけ使用されていても、各コンポーネントをそのファイルに抽象化します。抽象レイヤーには独自のメリットがあります。各コンポーネントを個別にエクスポートして複数のエクスポートファイルを扱うことはできません。 – finalfreq
コンポーネントは非常にきめ細かくなり、読みやすさ、パフォーマンス、デバッグに役立ちます。彼らは、小さなコンポーネントの束とフォルダを汚染したくない。 – MichaelTaylor3D
その場合、キー/値のペアを持つオブジェクトをエクスポートし、 'const MyComponent = require( 'MyComponent')を実行する必要があるというあなたの唯一の選択肢は、MyComponent' – finalfreq