現在、React + MaterialUi アプリケーションの単体テストを作成しています。
私のアプリケーションにはダイアログがあります。ダイアログでどのボタンが押されたかに応じて確認したい:
<FlatButton
label="Cancel"
secondary={true}
onTouchTap={this._cancelDialog.bind(this)}
/>
<FlatButton
label="Submit"
primary={true}
onTouchTap={this._confirmDialog.bind(this)}
/>
それに応じて内部状態が変化すること。
TestUtils.scryRenderedComponentsWithType(FlatButton)
残念ながら、またはなどを使用してダイアログの内容を把握できません
scryRenderedComponentsWithTag("button")
。
そのフローをテストする方法についてのアイデアはありますか?
更新 1
したがって、TestUtils.scryRenderedComponentsWithType(Dialog) を呼び出して、Dialog インスタンスを取得できます。しかし、ダイアログの内容を取得できません。DOM に関しては、コンテンツはビュー自体の内部ではレンダリングされません。ドキュメント レベル (div) で新しく作成されたノードにレンダリングされます。だから私はこれを試しました:
let cancelButton = window.document.getElementsByTagName("button")[0];
Simulate.click(cancelButton);
上記の場合の cancelButton は正しい DOM 要素です。ただし、Simulate.click はコンポーネントのクリック機能をトリガーしません。
よろしくジョナス