简而言之:
it("", async () => { axios.get.mockImplementationOnce(() => Promise.resolve({ data: slides })) const tree = renderer.create(<Carousel />); await Promise.resolve(); expect(tree.toJSON()).toMatchSnapshot()})应该做的工作
详细信息:除了您模拟的对API数据的调用之外,异步调用仍在进行。因此,我们需要将
toMatchSnapshot调用转到微任务队列的末尾。
setTimeout(...,0)或
setImmediate也可以使用,但是我发现
awaitPromise.resolve()它更好地被识别为“下面的所有内容都将排在队列末尾”
[UPD]固定代码段:
.toJSON必须在等待之后,它返回的对象将永远不会更新



