react 单元测试异步请求数据

新手上路,请多包涵

我在单元测试中使用jest进行断言。有一个组件异步加载数据,怎么样断言加载后的组件?
下面是代码:

it("请求项目并渲染到界面上", async () => {
  expect.assertions(2);

  const projectNo = "1111-2222-3333";

  const fakeProject = {
    name: "测试项目-项目名称应该渲染到界面上",
    id: projectNo,
  };

  const match = { params: { projectNo } };

  mockAxios.get.mockImplementationOnce(() =>
    Promise.resolve({ data: fakeProject })
  );

  await act(async () => {
    render(<ProjectEditor match={match} />, container);
  });

  // 这里打印container是null
  console.log(container);
  
  expect(pretty(container.innerHTML)).toMatchSnapshot();
  expect(container.textContent).toContain(fakeProject.name);
});

上面是按照官网给出的示例写出的,使用await语法渲染组件,但是后面container不知为何为空。我的组件是用Hooks开发的,在useEffect中向后端发送请求。
有没有熟悉写单元测试的大佬,帮帮忙,谢谢!!

阅读 760
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题