Mock-функции
Mock-функции также известны как "шпионы", потому что они позволяют вам шпионить за поведением функции, которая вызывается косвенно каким-либо другим кодом, а не только тестировать вывод. Mock-функцию можно создать при помощи jest.fn()
. Если реализация не задана, то при вызове mock-функция вернет значение undefined
.
Примеры TypeScript с этой страницы будут работать только в том случае, если вы явно импортируете Jest API:
Import {expect, jest, test} from '@jest/globals';
Обратитесь к Началу работы за подробностями о том, как установить Jest с TypeScript.
Методы
- Справка
mockFn.getMockName()
mockFn.mock.calls
mockFn.mock.results
mockFn.mock.instances
mockFn.mock.contexts
mockFn.mock.lastCall
mockFn.mockClear()
mockFn.mockReset()
mockFn.mockRestore()
mockFn.mockImplementation(fn)
mockFn.mockImplementationOnce(fn)
mockFn.mockName(name)
mockFn.mockReturnThis()
mockFn.mockReturnValue(value)
mockFn.mockReturnValueOnce(value)
mockFn.mockResolvedValue(value)
mockFn.mockResolvedValueOnce(value)
mockFn.mockRejectedValue(value)
mockFn.mockRejectedValueOnce(value)
mockFn.withImplementation(fn, callback)
- Replaced Properties
- TypeScript Usage
Справка
mockFn.getMockName()
Возвращает набор имён mock-фукнции путем вызова .mockName()
.
mockFn.mock.calls
An array containing the call arguments of all calls that have been made to this mock function. Each item in the array is an array of arguments that were passed during the call.
For example: A mock function f
that has been called twice, with the arguments f('arg1', 'arg2')
, and then with the arguments f('arg3', 'arg4')
, would have a mock.calls
array that looks like this:
[
['arg1', 'arg2'],
['arg3', 'arg4'],
];
mockFn.mock.results
An array containing the results of all calls that have been made to this mock function. Each entry in this array is an object containing a type
property, and a value
property. type
will be one of the following:
'return'
- ук азывает, что вызов завершился корректно.'throw'
- указывает, что вызов завершился путем выброса исключения.'incomplete'
- указывает, что вызов еще не завершен. Это происходит, если вы протестируете результат внутри самой mock-функции или из функции, вызванной mock-функцией.
The value
property contains the value that was thrown or returned. value
is undefined when type === 'incomplete'
.
For example: A mock function f
that has been called three times, returning 'result1'
, throwing an error, and then returning 'result2'
, would have a mock.results
array that looks like this:
[
{
type: 'return',
value: 'result1',
},
{
type: 'throw',
value: {
/* Error instance */
},
},
{
type: 'return',
value: 'result2',
},
];