Javascript 如何测试渲染到顶层的酶组分
我正在测试一个呈现Javascript 如何测试渲染到顶层的酶组分,javascript,enzyme,grommet,Javascript,Enzyme,Grommet,我正在测试一个呈现菜单的组件。套圈菜单组件将绝对定位的菜单呈现到文档的顶层,作为子菜单插入到正文。因此,它呈现在包装器的范围之外。我可以通过document.body.innerHTML(参考jsdom文档)找到它,但我想使用Ezyme与它交互。有什么建议吗 我的测试: const wrapper = mount( <MyComponent checkThis={checkThisSpy} /> ); wrapper.find('.spec-menu').simulate('
菜单的组件。套圈菜单
组件将绝对定位的菜单呈现到文档的顶层,作为子菜单插入到正文
。因此,它呈现在包装器的范围之外。我可以通过document.body.innerHTML
(参考jsdom文档)找到它,但我想使用Ezyme与它交互。有什么建议吗
我的测试:
const wrapper = mount(
<MyComponent checkThis={checkThisSpy} />
);
wrapper.find('.spec-menu').simulate('click');
console.log(document.body.innerHTML); // Shows the absolute menu inserted into the body
const wrapper=mount(
);
wrapper.find('.spec菜单').simulate('click');
console.log(document.body.innerHTML);//显示插入到主体中的绝对菜单
套圈中执行此操作的行document.body.insertBefore(drop.container,document.body.firstChild)代码>
只是想寻找一些关于处理这个问题的最佳方法的指导。谢谢 最终,我们无法找到任何方法来测试使用酶本身的成分。因为我们使用jsdom来提供dom,document
是全局可用的。我们最后写了一些期望,看起来像
expect(document.getElementsByClassName('my-top-level')).to.have.length(1)
普通的dom API足以测试我们想要的一切,只是有点笨重。grommet组件呈现的菜单是另一个子组件吗?如果不是,它只是附加到dom的元素,对吗?在本例中,我认为您可以使用类似chaidom的东西来验证假文档元素中是否存在内部html元素。