Unit testing 每次测试结束后清除模拟

Unit testing 每次测试结束后清除模拟,unit-testing,jestjs,Unit Testing,Jestjs,我正在学习Jest,我看到这个clearAllMocks函数正在使用,然后我检查了文档,描述如下: 清除所有模拟的mock.calls和mock.instances属性。 相当于对每个模拟函数调用.mockClear() 返回用于链接的jest对象 它基本上说明了通过读取函数名可以了解的内容。我仍然不知道什么时候应该使用它,为什么它有用。您能举个例子说明什么时候可以使用吗?通常在测试设置/拆卸期间使用 afterEach(() => { jest.clearAllMocks() }

我正在学习Jest,我看到这个clearAllMocks函数正在使用,然后我检查了文档,描述如下:

清除所有模拟的mock.calls和mock.instances属性。 相当于对每个模拟函数调用.mockClear()

返回用于链接的jest对象

它基本上说明了通过读取函数名可以了解的内容。我仍然不知道什么时候应该使用它,为什么它有用。您能举个例子说明什么时候可以使用吗?

通常在测试设置/拆卸期间使用

afterEach(() => {
    jest.clearAllMocks()
});
这样做可以确保测试之间不会存储可能导致错误断言的信息。假设您有一个mock函数mockFn,并且您调用了该函数,您可以断言它被调用了1次。如果在另一个测试中,您再次调用mockFn,但尚未清除mock,那么现在将调用两次而不是一次