我的测试文件中有:
describe('component', () => {
globals.Globalfunct = {
testfunc: jest.fn().mockReturnValue('something)
}
it('is a test', () => {
})
it('is another test', () => {
// in here I want testfunc to return something else, how can I do this?
})
}
我基本上希望开玩笑的模拟函数testFunc
每次都返回不同的东西。我怎样才能做到这一点?
我也无法让mockImplementation
工作
答案 0 :(得分:0)
假设您每次都需要不同的随机字符串...
describe('component', () => {
globals.Globalfunct = {
testfunc: jest.fn().mockReturnValue('foo'),
}
beforeEach(() => {
const randomStr = Math.random().toString(36).substring(7);
globals.Globalfunct.testfunc = jest.fn().mockReturnValue(randomStr);
});
it('is a test', () => {
})
it('is another test', () => {
// in here I want testfunc to return something else, how can I do this?
})
});
如果您有一个beforeEach
函数(official docs),它将在每个测试用例之前调用它。在上面的代码中,它将在每次测试之前将模拟函数更改为jest函数的另一个实例,从而为每个测试用例提供新的不同答案。