什么是 Mock?
Mock(中文常译为“模拟”或“桩”)是软件开发和测试中常用的一种技术,用于创建一个替代真实依赖的对象,以控制其行为并验证交互。
在单元测试中,我们通常希望只测试某个函数或模块本身,而不受其外部依赖(如数据库、网络服务、第三方API等)的影响。这时就可以使用 Mock 来“假装”这些依赖存在,并返回预设的数据。
Mock 的主要用途
- 隔离被测代码,避免外部依赖影响测试结果
- 模拟异常情况(如网络错误、服务不可用)
- 提高测试执行速度(无需真实调用慢速服务)
- 验证代码是否按预期调用了依赖方法
常见使用场景
例如,在测试一个发送邮件的功能时,你并不希望每次运行测试都真的发送一封邮件。此时可以 Mock 邮件服务对象,让它只记录“被调用过”,而不实际执行发送操作。
主流编程语言(如 Python、Java、JavaScript 等)都有成熟的 Mock 工具库,如 Python 的 unittest.mock、JavaScript 的 Jest.fn() 等。