Reactjs 如何在jest测试中共享设置和拆卸?

Reactjs 如何在jest测试中共享设置和拆卸?,reactjs,jestjs,Reactjs,Jestjs,我发现非常冗长,因为他们需要设置一个容器,并在每次测试后清理它 我希望在需要安装拆卸代码但找不到方法的测试文件之间共享安装拆卸代码,并且我不希望在每个组件测试之前和之后重复 我试过这样的方法: #sample.test.js #... 从“./react\u helpers.js”导入容器 #... #react_helpers.js 从“react dom”导入{unmountComponentAtNode} 让container=null; 在每个之前(()=>{ //将DOM元素设置为渲染

我发现非常冗长,因为他们需要设置一个容器,并在每次测试后清理它

我希望在需要安装拆卸代码但找不到方法的测试文件之间共享安装拆卸代码,并且我不希望在每个组件测试之前和之后重复

我试过这样的方法:

#sample.test.js
#...
从“./react\u helpers.js”导入容器
#...
#react_helpers.js
从“react dom”导入{unmountComponentAtNode}
让container=null;
在每个之前(()=>{
//将DOM元素设置为渲染目标
容器=document.createElement(“div”);
文件.正文.附件(容器);
});
之后(()=>{
//退出时的清理
卸载组件节点(容器);
容器。移除();
container=null;
});
导出默认容器

但是beforeach似乎没有运行。

react\u helpers有问题。如果导入未在使用中,则不会对ES模块进行评估,因此如果下面未引用
容器
,则从“/react\u helpers.js”导入容器将是不可操作的。而ES模块仅在第一次导入时进行评估,因此它们可能不适合此任务

如果需要共享数据,则需要在
commonSetup
和评估数据的上下文之间共享公共对象,如所述:

然后可以在需要此设置的测试中导入和评估
commonSetup

import commonSetup from './react_helpers.js'

...

let context = commonSetup();

it('...', () => {
  let { container } = context;
  ...
});
import commonSetup from './react_helpers.js'

...

let context = commonSetup();

it('...', () => {
  let { container } = context;
  ...
});