反応成分をテストするのに酵素/モカを使用しています。Enzyme/Mocha:子コンポーネントからonChangeイベントを発生させて反応コンポーネントの機能をテストする方法
私はテストしている親コンポーネントを持っています。
let wrapper = mount(<Parent />);
と私は私の両親fooの機能をテストできるように、この親はそれで子コンポーネントを持つ関数
render: function() {
<Child onChange={this.foo} />
},
foo: function() {
console.log("I was called");
}
をレンダリングだ、私は火に子供ののonChange機能をしたいと思います。
これまでのところ、私はこれを行う方法が見つかっていません - 私はサイロンとスタブについて読んだことがありますが、それは主に機能を傍受し、発砲しないことです。それは私の子と親を結ぶコード行をテストするものではありませんし、ケースには、私は私の子供のためのユニットテストを書いていないので、
次の試験
shallow(<Parent />).instance().foo();
は弱いテストであり、それ子のonChange機能もテストしません。私見 - 親/子に私の部品を壊すことは少ないテスト容易性を意味している場合 - その後、何かがこのフレームワーク
と間違っているすべてのヘルプは感謝
親テストで 'foo()'メソッドをテストし、子供テストで 'props.onChange()'( 'sinon.spy()'を使って)をトリガーする子供の能力をテストすると、子どもが 'props.onChange'を呼び出すと、Reactが' this.foo'を呼び出せることをテストする必要はありません。ちょうどあなたが状態を変更するときにReactが 'render()'を呼び出すか、または小道具が変わるときに 'componentWillReceiveProps()'を呼び出すかをテストする必要はありません。 –