method MockTracker.prototype.method
Overload 1
#MockTracker.prototype.method<MockedObject extends object,MethodName extends FunctionPropertyNames<MockedObject>,>(): MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName]> : neverThis function is used to create a mock on an existing object method. The following example demonstrates how a mock is created on an existing object method.
test('spies on an object method', (t) => {
const number = {
value: 5,
subtract(a) {
return this.value - a;
},
};
t.mock.method(number, 'subtract');
assert.strictEqual(number.subtract.mock.calls.length, 0);
assert.strictEqual(number.subtract(3), 2);
assert.strictEqual(number.subtract.mock.calls.length, 1);
const call = number.subtract.mock.calls[0];
assert.deepStrictEqual(call.arguments, [3]);
assert.strictEqual(call.result, 2);
assert.strictEqual(call.error, undefined);
assert.strictEqual(call.target, undefined);
assert.strictEqual(call.this, number);
});
Type Parameters #
#MockedObject extends object #MethodName extends FunctionPropertyNames<MockedObject> Parameters #
#object: MockedObject The object whose method is being mocked.
#methodName: MethodName The identifier of the method on object to mock. If object[methodName] is not a function, an error is thrown.
#options: MockFunctionOptions optional
Optional configuration options for the mock method.
Return Type #
MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName]> : never The mocked method. The mocked method contains a special mock property, which is an instance of MockFunctionContext, and can be used for inspecting and changing the
behavior of the mocked method.
Overload 2
#MockTracker.prototype.method<MockedObject extends object,MethodName extends FunctionPropertyNames<MockedObject>,Implementation extends Function,>(object: MockedObject,methodName: MethodName,implementation: Implementation,options?: MockFunctionOptions,): MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName] | Implementation> : neverType Parameters #
#MockedObject extends object #MethodName extends FunctionPropertyNames<MockedObject> #Implementation extends Function Parameters #
#object: MockedObject #methodName: MethodName #implementation: Implementation #options: MockFunctionOptions optional
Return Type #
MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName] | Implementation> : never Overload 3
#MockTracker.prototype.method<MockedObject extends object>(): Mock<Function>Overload 4
#MockTracker.prototype.method<MockedObject extends object>(object: MockedObject,methodName: keyof MockedObject,implementation: Function,options: MockMethodOptions,): Mock<Function>Type Parameters #
#MockedObject extends object Parameters #
#object: MockedObject #methodName: keyof MockedObject #implementation: Function #options: MockMethodOptions Return Type #
Mock<Function>