【问题标题】:Jest/Enzyme w/ React - "Target container is not a DOM element."Jest/Enzyme w/ React - “目标容器不是 DOM 元素。”
【发布时间】:2019-01-13 02:55:17
【问题描述】:

我正在尝试测试某个反应组件中的按钮是否触发其父组件中的功能。当我在我的测试文件中导入组件时,我偶然发现了我的问题,所以测试甚至还没有运行。

我导入的组件是一个常规的react组件,导出为:

export default connect(mapStateToProps, mapDispatchToProps)(Manager);

在我的测试文件中,我将其导入为:

import Manager from '../index.js';

当我运行测试时,我得到:

Target container is not a DOM element.

我知道可以提供的信息很少,但据我所知,实际上没有其他相关信息。我正在测试的组件做了很多事情并具有渲染功能。在 大量 阅读之后,我了解到有些人遇到了类似的问题,因为他们将某些内容导出到与 ReactDOM.render 相同的文件中。不幸的是,这不适用于我的问题。

有什么想法吗?

【问题讨论】:

标签: javascript reactjs jestjs enzyme


【解决方案1】:

可能在您的 index.js 文件中的某处有一个渲染调用。

【讨论】:

  • 这是评论,不是答案,请不要回答这些问题,直到您有可能(即足够的声誉)对帖子发表评论...
【解决方案2】:

您可以在Manager 中设置一个不带connect 的额外导出,然后您就可以将其导入您的测试文件并测试其行为:

export default connect(mapStateToProps, mapDispatchToProps)(Manager);
export { Manager };

然后在你的测试文件中:

import { Manager } from 'your-path'; // now a named import without Connect

【讨论】:

  • 很高兴它有帮助 ;)
猜你喜欢
  • 2014-07-19
  • 2017-02-20
  • 2014-12-12
  • 1970-01-01
  • 2019-01-16
  • 2018-11-21
  • 2020-09-28
  • 1970-01-01
相关资源
最近更新 更多