javascript - 为什么 React 需要 jsdom 进行测试?

标签 javascript unit-testing dom reactjs jestjs

在为 React 组件编写测试时,您必须将它们渲染到 DOM 中,以便断言它们的正确性。例如,如果你想测试某个类是否被添加到给定某个状态的节点,你必须渲染到 DOM 节点,然后通过普通的 DOM API 检查该 DOM 节点。

问题是,考虑到 React 维护一个虚拟 DOM 来渲染它,为什么我们不能在组件渲染后就在虚拟 DOM 上断言?在我看来,这是拥有虚拟 DOM 之类的东西的一个很好的理由。

我错过了什么吗?

最佳答案

你真的没有错过任何东西。我们正在努力让它变得更好。虚拟部分一直是 React 的一个非常重要的实现细节,没有以任何有用或可靠的方式暴露出来进行测试。我们的测试助手中有一些方法可以包装内部查找,有时可以避免查看实际的 DOM,但我们需要更多。

关于javascript - 为什么 React 需要 jsdom 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251990/

相关文章:

ios - OCMock 能否模拟一个类,使其自动在被测代码中使用模拟实例而不注入(inject)它

java - 使用 JMockit,如何模拟静态工厂方法以返回 Fake?

javascript - getBoundingClientRect 检测可见性

javascript - 允许使用 execCommand 在 contentEditable div 中使用 Tabbing

javascript - 从 <head> 中移除 &lt;style&gt; 标签

javascript - style 属性覆盖了用 jquery 分配的 css 属性

c++ - 在 Visual Studio 中为 C++ 设置单元测试项目的正确方法是什么,并在主项目中添加额外的包含目录?

javascript - 在appendChild之后发生的事件

javascript - tinymce 插件 - 如何从多个选项卡获取数据?

javascript - 将 HTML5 正则表达式模式转换为 javascript 正则表达式