1describe("mockImplementation", () => {
2 test("function", () => {
3 const mockFn1 = jest.fn().mockImplementation(() => 42);
4 const mockFn2 = jest.fn(() => 42);
5
6 expect(mockFn1()).toBe(42);
7 expect(mockFn2()).toBe(42);
8 });
1test("es6 class", () => {
2 const SomeClass = jest.fn();
3 const mMock = jest.fn();
4
5 SomeClass.mockImplementation(() => {
6 return {
7 m: mMock
8 };
9 });
10
11 const some = new SomeClass();
12 some.m("a", "b");
13 expect(mMock.mock.calls).toEqual([["a", "b"]]);
14 });
1test("mock.calls", () => {
2 const mockFn = jest.fn();
3 mockFn(1, 2);
4
5 expect(mockFn.mock.calls).toEqual([[1, 2]]);
6});
1test("mock.instances", () => {
2 const mockFn = jest.fn();
3
4 const a = new mockFn();
5 const b = new mockFn();
6
7 mockFn.mock.instances[0] === a;
8 mockFn.mock.instances[1] === b;
9});