要让mocked方法为任意参数返回不同的值(从数组中),可以使用以下步骤:
下面是一个示例使用Jest框架的代码:
// 假设我们要mock的方法是getRandomNumber,它接受一个参数n,并返回一个小于n的随机数
// 创建一个包含不同返回值的数组
const mockValues = [1, 2, 3, 4, 5];
// 创建mock对象并设置方法行为
const mockedObject = {
getRandomNumber: jest.fn().mockImplementation(() => {
return mockValues.shift(); // 返回数组中的下一个值
}),
};
// 测试代码
test('测试getRandomNumber方法', () => {
expect(mockedObject.getRandomNumber(10)).toBe(1); // 第一次调用返回1
expect(mockedObject.getRandomNumber(10)).toBe(2); // 第二次调用返回2
expect(mockedObject.getRandomNumber(10)).toBe(3); // 第三次调用返回3
});
在上述示例中,我们创建了一个包含不同返回值的数组mockValues
,然后使用Jest框架创建了一个mock对象mockedObject
,并设置了getRandomNumber
方法的行为为返回数组中的下一个值。在测试代码中,我们通过多次调用getRandomNumber
方法来验证返回值是否符合预期。
请注意,这只是一个示例,实际使用时需要根据具体的开发环境和框架进行相应的调整。
技术创作101训练营
云+社区技术沙龙[第21期]
“中小企业”在线学堂
云+社区开发者大会 长沙站
中小企业数字化升级之 提效篇
Elastic 中国开发者大会
技术创作101训练营
腾讯技术创作特训营第二季
云+社区技术沙龙[第27期]
领取专属 10元无门槛券
手把手带您无忧上云