Jest v16.0.1、react-test-renderer v15.4.0およびreact-addons-test-utils v15.4.0を使用してReactコンポーネントをテストしています。React Testレンダラー要素のシミュレーションをシミュレートする
<button
type="button"
className="btn btn-lg btn-primary btn-danger"
disabled={this.state.cancelButtonDisabled}
onClick={() => this.handleCancel()}
ref="cancelButton"
>Cancel</button>);
そして、私のテストでは、私はそうのようなコンポーネントのレンダリングだ:
const component = renderer.create(
<MyComponent />
);
const instance = component.getInstance();
// This works but is ugly
component.toJSON().children[1].children[0].props.onClick();
// This doesn't work
ReactTestUtils.Simulate.click(instance.refs.cancelButton);
let tree = component.toJSON();
expect(tree).toMatchSnapshot();
このボタンをクリックをシミュレートするための推奨方法は何であるの
コンポーネントは、ボタンをレンダリングしています?コンポーネントのJSON表現をトラバースすることはできますが、より良い方法であるように思えます。
私はReactTestUtils.renderIntoDocumentを使用していたときに
をReactTestUtils.Simulate.clickへのREFを使用したコンポーネントへの参照を渡すことができる前に、私はこの質問を見てきました - How to interact with components rendered by ReactTestRenderer/Jestを私はAPIは私のように変化していると仮定コンポーネントインスタンスにはfind()メソッドがありません。