如何测试酶包装外的元素?

时间:2017-07-27 07:24:54

标签: reactjs jestjs enzyme

我使用JestEnzyme进行单元测试。

在我的test.js文件中,我有

let wrapper = mount(<app />

我的测试点击了包装器中的按钮

wrapper.find('button').simulate('click')

并且组件呈现一个在包装器外部的模态。

我需要获得对模态的引用,以便我可以模拟其中的按钮单击。我可以通过document.body.children获得对模态的引用,但我无法对其进行任何操作。

如何使用酶来测试渲染包装器之外的元素?

1 个答案:

答案 0 :(得分:0)

您可以在React App中使用一个已定义的状态测试ButtonOnclik

在您的组件中

state={
    data: 'first State',
};

render(){
return (<div>
     <button onClick={(e) => this.setState({data: 'second State'})}>Test</button>

</div>
}

在测试中,您可以使用Enzyme或仅使用Jest

const wrapper = shallow(<Name Your Component/>);

it('test button', () => {
        expect(wrapper.state().data).toBe('first State');
        wrapper.find('button').simulate('click');
        expect(wrapper.state().data).toBe('second State')
    });

希望它对你有所帮助:)。