fn
This function is used to create a mock function.
The following example creates a mock function that increments a counter by one on each invocation. The times
option is used to modify the mock behavior such that the first two invocations add two to the counter instead of one.
test('mocks a counting function', (t) => {
let cnt = 0;
function addOne() {
cnt++;
return cnt;
}
function addTwo() {
cnt += 2;
return cnt;
}
const fn = t.mock.fn(addOne, addTwo, { times: 2 });
assert.strictEqual(fn(), 2);
assert.strictEqual(fn(), 4);
assert.strictEqual(fn(), 5);
assert.strictEqual(fn(), 6);
});
Since
v19.1.0, v18.13.0
Return
The mocked function. The mocked function contains a special mock
property, which is an instance of {@link MockFunctionContext}, and can be used for inspecting and changing the behavior of the mocked function.
Parameters
An optional function to create a mock on.
An optional function used as the mock implementation for original
. This is useful for creating mocks that exhibit one behavior for a specified number of calls and then restore the behavior of original
.
Optional configuration options for the mock function.