mock function jest
/* The Mock Function The goal for mocking is to replace something we don’t control with something we do, so it’s important that what we replace it with has all the features we need. The Mock Function provides features to: 1. Capture calls 2. Set return values 3. Change the implementation The simplest way to create a Mock Function instance is with jest.fn() */ test("returns undefined by default", () => { const mock = jest.fn(); let result = mock("foo"); expect(result).toBeUndefined(); expect(mock).toHaveBeenCalled(); expect(mock).toHaveBeenCalledTimes(1); expect(mock).toHaveBeenCalledWith("foo"); });
Source: medium.com
jest mock method by name
import Foo from './Foo'; import Bar from './Bar'; jest.mock('./Bar'); describe('Foo', () => { it('should return correct foo', () => { // As Bar is already mocked, // we just need to cast it to jest.Mock (for TypeScript) and mock whatever you want (Bar.prototype.runBar as jest.Mock).mockReturnValue('Mocked bar'); const foo = new Foo(); expect(foo.runFoo()).toBe('real foo : Mocked bar'); }); });
Source: stackoverflow.com
jest mock implementation once
const myMockFn = jest .fn() .mockImplementationOnce(cb => cb(null, true)) .mockImplementationOnce(cb => cb(null, false)); myMockFn((err, val) => console.log(val)); // > true myMockFn((err, val) => console.log(val)); // > false
Source: jestjs.io
mock callback function jest
const bodyToAssertAgainst = {}; globals.request.post = jest.fn().mockImplementation((obj, cb) => { cb(null, bodyToAssertAgainst); });
Source: stackoverflow.com