class MockFunctionContext
The MockFunctionContext class is used to inspect or manipulate the behavior of
mocks created via the MockTracker APIs.
Type Parameters #
#F extends Function Properties #
#calls: Array<MockFunctionCall<F>> A getter that returns a copy of the internal array used to track calls to the mock. Each entry in the array is an object with the following properties.
Methods #
This function returns the number of times that this mock has been invoked. This
function is more efficient than checking ctx.calls.length because ctx.calls is a getter that creates a copy of the internal call tracking array.
#mockImplementation(implementation: F): void This function is used to change the behavior of an existing mock.
The following example creates a mock function using t.mock.fn(), calls the
mock function, and then changes the mock implementation to a different function.
test('changes a mock behavior', (t) => {
let cnt = 0;
function addOne() {
cnt++;
return cnt;
}
function addTwo() {
cnt += 2;
return cnt;
}
const fn = t.mock.fn(addOne);
assert.strictEqual(fn(), 1);
fn.mock.mockImplementation(addTwo);
assert.strictEqual(fn(), 3);
assert.strictEqual(fn(), 5);
});
#mockImplementationOnce(implementation: F,onCall?: number,): void This function is used to change the behavior of an existing mock for a single
invocation. Once invocation onCall has occurred, the mock will revert to
whatever behavior it would have used had mockImplementationOnce() not been
called.
The following example creates a mock function using t.mock.fn(), calls the
mock function, changes the mock implementation to a different function for the
next invocation, and then resumes its previous behavior.
test('changes a mock behavior once', (t) => {
let cnt = 0;
function addOne() {
cnt++;
return cnt;
}
function addTwo() {
cnt += 2;
return cnt;
}
const fn = t.mock.fn(addOne);
assert.strictEqual(fn(), 1);
fn.mock.mockImplementationOnce(addTwo);
assert.strictEqual(fn(), 3);
assert.strictEqual(fn(), 4);
});
#resetCalls(): void Resets the call history of the mock function.