我正在编写一个玩笑测试来两次调用静态方法。确实会第一次调用静态方法,但不会第二次通过console.log()验证。
我不知道为什么它不会第二次调用。 我尝试了jest.clearAllMocks(),jest.mockReset(),但这只是清除了模拟功能。由于某些奇怪的原因,该组件将不会进行第二次调用。
const Component = require('./myFile.jsx') .default
it('', () => {
jest.mock('./myfile.jsx')
const mockFn = jest.fn()
mockFn.mockReturnValue(true)
Component.setValue('myValue')
Component.setValue = mockFn
let result = Component.SetValue('myValue')
expect(result).toEqual(true)
// so far so good, this works, console.log see 'myValue' is passed to the static method
Component.setValue('')
Component.setValue = mockFn
let result = Component.SetValue('')
expect(result).toEqual(true)
// the SetValue is never call for a 2nd time. stuck here.
}
In my jsx code
static SetValue(Name) {
console.log('----> Name: ', Name)
}