我正在使用Jest和快照测试.我想做的是渲染一个组件ReactTestRenderer,然后模拟单击其中的按钮,然后验证快照.
ReactTestRenderer create调用返回的对象有一个getInstance允许我直接调用其方法的函数,但它似乎不适用于ReactTestUtils中的任何find/scry方法.
我可以手动遍历树并单击按钮,但似乎必须有更好的方法:
import React from 'react';
import ReactDOM from 'react-dom';
import MyCounter from './MyCounter';
import renderer from 'react-test-renderer';
import {Simulate, findRenderedDOMComponentWithClass} from 'react-addons-test-utils';
it('should render 0', () => {
const component = renderer.create(<MyCounter/>);
const inst = component.getInstance();
// Calling methods directly works, but that's not the same as
// simulating a click on the button...
inst.increment();
// This also works, but it's awfully verbose...
component.toJSON().children[1].props.onClick();
// I'm looking for something like...
// inst.find('.increment').click() …Run Code Online (Sandbox Code Playgroud)