什么是 Mockvoid 方法?
在 JavaScript 单元测试或模块解耦中,我们常需要“模拟”某些函数的行为,尤其是那些不返回值(即 void 函数)的调用。 “Mockvoid” 并非语言内置方法,而是一种常见的开发实践:通过创建一个不执行任何操作的空函数(no-op function), 来替代原始函数,从而避免副作用或依赖外部环境。
典型使用场景
- 单元测试中隔离依赖
- 防止控制台报错(如未定义函数被调用)
- 临时禁用某些回调或事件处理器
- 组件开发中提供可选的回调占位
简单实现示例
// 定义一个 mockvoid 函数
const mockvoid = () => {};
// 使用示例
const originalLog = console.log;
console.log = mockvoid; // 临时禁用日志输出
// 恢复
console.log = originalLog;
进阶技巧:带日志记录的 Mock
有时你不仅想“屏蔽”函数,还想记录它是否被调用:
function createMockVoid() {
const calls = [];
function mock(...args) {
calls.push(args);
}
mock.calls = calls;
return mock;
}
const mockedFn = createMockVoid();
mockedFn('hello');
console.log(mockedFn.calls); // [['hello']]