这是我的callnapply.js文件
const callAndApply = {
caller(object, method, nameArg, ageArg, tShirtSizeArg) {
method.call(object, nameArg, ageArg, tShirtSizeArg);
},
applier(object, method, argumentsArr) {
method.apply(object, argumentsArr);
},
};
module.exports = callAndApply;
Run Code Online (Sandbox Code Playgroud)
这是包含非工作测试的测试文件的片段:
const callnapply = require('./callnapply');
test('testing Function.prototype.call as mock function', () => {
const outer = jest.fn();
const name = 'Aakash';
const age = 22;
const tee = 'M';
callnapply.caller(this, outer, name, age, tee);
expect(outer.call).toHaveBeenCalledWith(name, age, tee);
});
Run Code Online (Sandbox Code Playgroud)
我如何编写测试来检查method我传递的实际上是否Function.prototype.call仅被函数调用?我想检查是否.call()正在调用,而不是为method调用编写的其他一些实现。
您可以模拟.call()方法本身:
const outer = function() {}
outer.call = jest.fn()
Run Code Online (Sandbox Code Playgroud)
然后你可以在outer.call.
这是工作测试文件:
const callnapply = require('./callnapply');
test('testing Function.prototype.call as mock function', () => {
const outer = function() {};
outer.call = jest.fn();
const name = 'Aakash';
const age = 22;
const tee = 'M';
callnapply.caller(this, outer, name, age, tee);
expect(outer.call).toHaveBeenCalledWith(this, name, age, tee);
});
Run Code Online (Sandbox Code Playgroud)
看到这个工作 REPL。
| 归档时间: |
|
| 查看次数: |
7391 次 |
| 最近记录: |