4
最後に、私のコンポーネントをReact.createClass()
からES6クラスに更新しています。私が使用してfetchSomeData()
をスタブする方法:私は私のテストで見ている最初のエラーがjscodeshift -t react-codemod/transforms/class.js
が私の質問がある React - プロパティ初期化子構文を使用するコンポーネントメソッドをスタブする方法はありますか?
すなわち
class Foo extends React.Component {
componentWillMount() {
this.fetchSomeData(this.props);
}
componentWillReceiveProps(nextProps) {
if (nextProps.someProp !== this.props.someProp) {
this.fetchSomeData(nextProps);
}
}
fetchSomeData = (props) => {
...
};
render() {
...
}
}
、プロパティの初期化の提案を使用するために私のコンポーネントのメソッドを変換するので、私の
sinon.stub()
通話の一部が失敗しているということですこの新しい構文?
fetchSomeData
がもうプロトタイプにないので、私のテストはのようになります。
ありがとうございます!
ES7は昨年リリースされた*(2016)。プロパティの初期化子は* proposal *です。 –
テストでコンポーネントのインスタンスにアクセスできますか?もしそうなら、あなたはsinon.stub(componentInstance、 'fetchSomeData')を実行し、次にcomponentInstance.render()を実行することができます。 – jeznag
@jeznag良い点、ありがとう。それを考えなかった。しかし、私は酵素がレンダリングライフサイクルを処理させるようにしました。そして、それを介することは私にとって良い解決策になるとは思いません。 – mulleady1