我在单元测试中使用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中向后端发送请求。
有没有熟悉写单元测试的大佬,帮帮忙,谢谢!!