ctx.mockImplementation(implementation)
implementation
<Function> | <AsyncFunction> 要用作模拟的新实现的函数。
此函数用于更改现有模拟的行为。
以下示例使用 t.mock.fn()
创建模拟函数,调用模拟函数,然后将模拟实现更改为不同的函数。
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);
});
implementation
<Function> | <AsyncFunction> The function to be used as the mock's new implementation.
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);
});