如何在useEffect挂钩中模拟异步函数

时间:2020-08-17 10:40:17

标签: reactjs jestjs enzyme


我可能在这里丢失了一些东西,我试图在useEffect挂钩中模拟一个API函数。 API调用应返回版本号(即1.0.0)
我尝试进行模拟并将其发送到组件,但是由于某种原因,它无法正常工作。

我的useEffect挂钩:

    useEffect(() => {
        async function loader() {
            const ver = await loadVersion();
            if (ver === 401) {
                history.push("/login");
                return;
            }
            setVersion(ver);
        };
        loader();
    }, []);

我的测试:

describe("Footer", () => {
  const loader = jest.fn();
  const loadVersion = jest.fn(() => '2.0.0');
  let wrapper;
  beforeEach(() => {
    wrapper = shallow(<Footer loader={loader} loadVersion={loadVersion}/>)
  })
    it("Renders without crashing", () => {
      expect.assertions(1)
      expect(wrapper).not.toBeNull();
      wrapper.update();
      console.log(wrapper.debug()) // I'm trying to get the version from mocked loadVersion.
    })
})

我试图调试它以检查它是否进入了模拟函数,但不是,并且在我的覆盖率报告中,它没有通过useEffect挂钩内的异步函数的第一行。

0 个答案:

没有答案