Skip to content

Instantly share code, notes, and snippets.

@ThaddeusJiang
Last active July 27, 2018 00:03
Show Gist options
  • Save ThaddeusJiang/1de29a7007f5792778d40b0216e7fe73 to your computer and use it in GitHub Desktop.
Save ThaddeusJiang/1de29a7007f5792778d40b0216e7fe73 to your computer and use it in GitHub Desktop.
jest mock function return 无参
const mock = jest.fn();
mock.mockReturnValue(42);
mock(); // 42
mock.mockReturnValue(43);
mock(); // 43
// 或者
const myMockFn = jest
.fn()
.mockReturnValue('default')
.mockReturnValueOnce('first call')
.mockReturnValueOnce('second call');
// 'first call', 'second call', 'default', 'default'
console.log(myMockFn(), myMockFn(), myMockFn(), myMockFn());
@ThaddeusJiang
Copy link
Author

如果 function 返回结果是根据输入计算出来的,使用 mockFn.mockImplementation(() => { })

const mockFn = jest.fn().mockImplementation(scalar => 42 + scalar);
// or: jest.fn(scalar => 42 + scalar);

const a = mockFn(0);
const b = mockFn(1);

a === 42; // true
b === 43; // true

mockFn.mock.calls[0][0] === 0; // true
mockFn.mock.calls[1][0] === 1; // true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment