Javascript 使用数据获取而不是解析承诺进行响应测试

Javascript 使用数据获取而不是解析承诺进行响应测试,javascript,reactjs,unit-testing,asynchronous,promise,Javascript,Reactjs,Unit Testing,Asynchronous,Promise,我参考了以下关于数据获取的教程,因为我想将其用作我自己测试的模板 我使用npm测试,它调用react脚本测试,并且据我所知,使用jasmine 我按照教程中的描述创建了user.js和user.test.js //user.test.js 从“React”导入React; 从“react dom”导入{render,unmountComponentAtNode}; 从“react dom/test utils”导入{act}; 从“/User”导入用户; 让container=null; 在每个

我参考了以下关于数据获取的教程,因为我想将其用作我自己测试的模板

我使用
npm测试
,它调用react脚本测试,并且据我所知,使用jasmine

我按照教程中的描述创建了user.js和user.test.js

//user.test.js
从“React”导入React;
从“react dom”导入{render,unmountComponentAtNode};
从“react dom/test utils”导入{act};
从“/User”导入用户;
让container=null;
在每个之前(()=>{
//将DOM元素设置为渲染目标
容器=document.createElement(“div”);
文件.正文.附件(容器);
});
之后(()=>{
//退出时的清理
卸载组件节点(容器);
容器。移除();
container=null;
});
它(“呈现用户数据”,异步()=>{
常量伪造用户={
姓名:“Joni Baez”,
年龄:"32岁",,
地址:“魅力大道123号”
};
jest.spyOn(全局,“fetch”).mockImplementation(()=>
承诺,决心({
json:()=>Promise.resolve(fakeUser)
})
);
//使用异步版本的act应用已解决的承诺
等待动作(异步()=>{
渲染(,容器);
});
expect(container.querySelector(“summary”).textContent).toBe(fakeUser.name);
expect(container.querySelector(“strong”).textContent).toBe(fakeUser.age);
expect(container.textContent).toContain(fakeUser.address);
//移除模拟以确保测试完全隔离
global.fetch.mockRestore();
});
当我运行测试时,我得到
超时-在jest指定的5000ms超时内没有调用异步回调。
设置超时。错误

出于某种原因,它似乎无法解决这一承诺


我做错了什么?我真不敢相信这篇教程被窃听了!感谢您的帮助

现在开始工作了。您完全需要react dom>=16.9.0

Mmm,我使用
create react app
创建了一个新项目,测试似乎正在运行。您能否在问题中提供
package.json
?为了使
act
支持异步版本,必须使用
react dom
^16.9.0版本。