Jestjs Jest mockResolvedValueOnce/mockReturnValueOnce访问函数参数
我想编写一个模拟函数,在每次调用时返回不同的值。我遇到的问题是,返回值取决于传递给函数的参数值Jestjs Jest mockResolvedValueOnce/mockReturnValueOnce访问函数参数,jestjs,Jestjs,我想编写一个模拟函数,在每次调用时返回不同的值。我遇到的问题是,返回值取决于传递给函数的参数值 //something like this window.fetch = jest.fn(urlPath) .mockResolvedValueOnce(fetch({urlPath})) .mockResolvedValueOnce(fetch({urlPath, arg1: 1})); 我发现了这个,也许有帮助,但不确
//something like this
window.fetch = jest.fn(urlPath)
.mockResolvedValueOnce(fetch({urlPath}))
.mockResolvedValueOnce(fetch({urlPath, arg1: 1}));
我发现了这个,也许有帮助,但不确定它是否有效
import { when } from 'jest-when';
window.fetch = jest.fn(urlPath);
when(window.fetch).calledWith({urlPath, arg1: 1}).mockReturnValue('test');
await expect(window.fetch({urlPath, arg1: 1})).resolves.toEqual('test')
使用模拟实现。它允许您传递函数,并以细粒度的方式处理它
jest.mockImplementation((arg1,arg2)=>returnwhich(arg1,arg2))
我希望mockReturnValue能够访问arg1这样的参数,为什么mockReturnValue需要访问这些参数?您可以将arg1直接传递给mockReturnValue如何将arg1、urlPath传递给mockReturnValue?据我所知,当(window.fetch)调用时({'/api/v1/…',arg1:1})。mockReturnValue('/api/v1/…')