Readonly
lengthReadonly
nameReturns the name of the function. Function names are read-only and can not be changed.
Determines whether the given value inherits from this function if this function was used as a constructor function.
A constructor function can control which objects are recognized as its instances by 'instanceof' by overriding this method.
Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.
The object to be used as the this object.
Optional
argArray: anyA set of arguments to be passed to the function.
For a given function, creates a bound function that has the same body as the original function. The this object of the bound function is associated with the specified object, and has the specified initial parameters.
An object to which the this keyword can refer inside the new function.
A list of arguments to be passed to the new function.
Resets all information stored in the mockFn.mock.calls and mockFn.mock.instances arrays.
Often this is useful when you want to clean up a mock's usage data between two assertions.
Beware that mockClear
will replace mockFn.mock
, not just mockFn.mock.calls
and mockFn.mock.instances
.
You should therefore avoid assigning mockFn.mock to other variables, temporary or not, to make sure you
don't access stale data.
Accepts a function that should be used as the implementation of the mock. The mock itself will still record all calls that go into and instances that come from itself – the only difference is that the implementation will also be executed when the mock is called.
Note: jest.fn(implementation)
is a shorthand for jest.fn().mockImplementation(implementation)
.
Simple sugar function for: jest.fn().mockImplementation(() => Promise.reject(value));
Simple sugar function for: jest.fn().mockImplementationOnce(() => Promise.reject(value));
Resets all information stored in the mock, including any initial implementation and mock name given.
This is useful when you want to completely restore a mock back to its initial state.
Beware that mockReset
will replace mockFn.mock
, not just mockFn.mock.calls
and mockFn.mock.instances
.
You should therefore avoid assigning mockFn.mock to other variables, temporary or not, to make sure you
don't access stale data.
Simple sugar function for: jest.fn().mockImplementation(() => Promise.resolve(value));
Simple sugar function for: jest.fn().mockImplementationOnce(() => Promise.resolve(value));
test('async test', async () => {
const asyncMock = jest
.fn()
.mockResolvedValue('default')
.mockResolvedValueOnce('first call')
.mockResolvedValueOnce('second call');
await asyncMock(); // first call
await asyncMock(); // second call
await asyncMock(); // default
await asyncMock(); // default
});
Does everything that mockFn.mockReset()
does, and also restores the original (non-mocked) implementation.
This is useful when you want to mock functions in certain test cases and restore the original implementation in others.
Beware that mockFn.mockRestore
only works when mock was created with jest.spyOn
. Thus you have to take care of restoration
yourself when manually assigning jest.fn()
.
The restoreMocks
configuration option is available
to restore mocks automatically between tests.
Accepts a value that will be returned for one call to the mock function. Can be chained so that
successive calls to the mock function return different values. When there are no more
mockReturnValueOnce
values to use, calls will return a value specified by mockReturnValue
.
Temporarily overrides the default mock implementation within the callback, then restores its previous implementation.
Temporarily overrides the default mock implementation within the callback, then restores its previous implementation.
Provides access to the mock's metadata