Javascript 如何使Jest mocked函数在每个测试套件中都有一个新的计数?
当我断言模拟函数被调用的次数时,导入的模拟函数总是返回调用的组合次数 例如,第一个测试套件有一个名为模拟函数的函数Javascript 如何使Jest mocked函数在每个测试套件中都有一个新的计数?,javascript,jestjs,Javascript,Jestjs,当我断言模拟函数被调用的次数时,导入的模拟函数总是返回调用的组合次数 例如,第一个测试套件有一个名为模拟函数的函数import{get}from'axios'一次,预期的tohavencalledtimes为1。但是,第二个测试套件,再次调用get和tohavebeincalledtimes的函数是2,而不是1 如何使模拟函数返回每个测试套件的刷新计数 describe('fetchAData', () => { it('should return the right A data
import{get}from'axios'
一次,预期的tohavencalledtimes
为1
。但是,第二个测试套件,再次调用get
和tohavebeincalledtimes
的函数是2
,而不是1
如何使模拟函数返回每个测试套件的刷新计数
describe('fetchAData', () => {
it('should return the right A data response', (done) => {
const sampleResponse = { data: dataASample };
get.mockImplementationOnce(() => {
return Promise.resolve(sampleResponse);
});
fetchAData().then(() => {
expect(get).toHaveBeenCalledTimes(1);
done();
});
});
});
describe('fetchBData', () => {
it('should return the right B data response', (done) => {
const sampleResponse = { data: dataBSample };
get.mockImplementationOnce(() => {
return Promise.resolve(sampleResponse);
});
fetchBData().then(() => {
expect(get).toHaveBeenCalledTimes(1); // -> Return `2`
done();
});
});
});
mockFn.mockReset()
刚刚成功
执行mockFn.mockClear()所做的一切,并删除任何模拟的返回值或实现
如果有人需要,jest.resetAllMocks()
会对所有模拟函数执行相同的操作。
beforeEach(() => {
get.mockReset();
});