【发布时间】:2017-08-06 21:58:09
【问题描述】:
我正在尝试测试我的 React 类(使用 TestUtils、Enzyme 和 Jest),但由于我们不得不忍受一些变通方法,它依赖于服务器呈现的 HTML 页面中的元素——即,它会在渲染之前从 componentDidMount 中的 DOM 中抓取某些元素。例如:
componentDidMount() {
document.documentElement.classList.add('example');
this.someOtherFunction(document.getElementsByClassName('my-great-className'))
}
我想测试这个组件,但是 componentDidMount 中的函数当然会失败,因为测试中不存在服务器渲染的 HTML 页面。有没有办法在渲染 React 组件之前模拟一个特定的 DOM?
【问题讨论】: