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 });
1//class.js
2class MyClass {
3 methodOne() {
4 return 1;
5 }
6 methodTwo() {
7 return 2;
8 }
9}
10module.exports = MyClass;
11
12// class.test.js
13test('spy using class method', () => {
14 const result = new MyClass()
15 const spy = jest.spyOn(result, 'methodOne')
16 result.methodOne()
17
18 // check class method is call or not
19 expect(spy).toHaveBeenCalled()
20
21 // expect old value
22 expect(result.methodOne()).toBe(1)
23
24 // expect new value
25 spy.mockReturnValueOnce(12)
26 expect(result.methodOne()).toBe(12)
27})