我使用Jest v16.0.1,react-test-renderer v15.4.0和react-addons-test-utils v15.4.0測試React組件。React測試渲染器模擬點擊元素
組件已經呈現一個按鈕:
<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
我已經看到了這個問題 - How to interact with components rendered by ReactTestRenderer/Jest但我認爲該API已經改變了我的組件實例沒有find()方法。