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

Reactjs 如何测试酶包装外的元素?,reactjs,jestjs,enzyme,Reactjs,Jestjs,Enzyme,我用Jest和Ezyme做单元测试 在我的test.js文件中 let wrapper = mount(<app /> 组件呈现包装器外部的模态 我需要得到一个对模态的引用,这样我就可以模拟点击其中的一个按钮。我可以通过document.body.children获得对模态的引用,但我不能用它做任何事情 如何使用酶来测试呈现包装外的元素?您可以在React应用程序中使用一个已定义的状态测试ButtonOnclik 在您的组件中 在测试中,你们可以使用酶或者只是开玩笑 希望对您有所帮

我用Jest和Ezyme做单元测试

在我的test.js文件中

let wrapper = mount(<app />
组件呈现包装器外部的模态

我需要得到一个对模态的引用,这样我就可以模拟点击其中的一个按钮。我可以通过document.body.children获得对模态的引用,但我不能用它做任何事情


如何使用酶来测试呈现包装外的元素?

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

在您的组件中

在测试中,你们可以使用酶或者只是开玩笑


希望对您有所帮助:

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

在您的组件中

在测试中,你们可以使用酶或者只是开玩笑


希望对您有所帮助:

您能在按钮上触发一个普通DOM事件来模拟单击吗?如果您使用document.querySelector“..”,则有一个函数可以实现此功能。单击。@ivarni否,当我运行测试时,而不是在浏览器环境中。我不能正确使用任何网络。我们在jsdom中运行我们的程序,但不使用玩笑。如果您的组件有模态的参考,您可以通过访问它吗?我不确定它是否有效,但值得一试。你能在按钮上触发一个普通的DOM事件来模拟点击吗?如果您使用document.querySelector“..”,则有一个函数可以实现此功能。单击。@ivarni否,当我运行测试时,而不是在浏览器环境中。我不能正确使用任何网络。我们在jsdom中运行我们的程序,但不使用玩笑。如果您的组件有模态的参考,您可以通过访问它吗?我不确定它是否有效,但值得一试。看起来你误解了我的意思,稍后我会编辑我的问题,我认为这会有帮助。看起来你误解了我的意思,稍后我会编辑我的问题,我认为这会有帮助
wrapper.find('button').simulate('click')
state={
    data: 'first State',
};

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

</div>
}
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')
    });