当我断言调用模拟函数的次数时,导入的模拟函数总是返回调用的组合次数。
例如,第一个测试套件有一个称为模拟函数的函数import { get } from 'axios',预期toHaveBeenCalledTimes为1。但是,第二个测试套件,调用的函数get一次toHaveBeenCalledTimes是2不是1。
如何让模拟函数toHaveBeenCalledTimes为每个测试服返回一个刷新计数?
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();
});
});
});
Run Code Online (Sandbox Code Playgroud)
mockFn.mockReset()刚刚成功,https://jestjs.io/docs/en/mock-function-api#mockfnmockreset
执行 mockFn.mockClear() 所做的一切,并删除任何模拟的返回值或实现。
beforeEach(() => {
get.mockReset();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |