Mock单元测试指南

什么是 Mock 单元测试?

Mock 单元测试是一种软件测试方法,通过使用“模拟对象”(Mock Objects)来替代真实依赖,从而隔离被测代码,确保测试仅验证目标逻辑,而不受外部系统(如数据库、网络服务等)影响。

为什么使用 Mock?

  • 提高测试速度:避免调用真实外部服务。
  • 增强稳定性:不受第三方服务状态干扰。
  • 提升覆盖率:可模拟异常路径和边界条件。
  • 解耦测试:每个单元独立验证,不依赖其他模块状态。

常见 Mock 工具

JavaScript:Jest、Sinon.js、Vitest

Python:unittest.mock、pytest-mock

Java:Mockito、EasyMock

C#:Moq、NSubstitute

简单示例(JavaScript + Jest)

// 被测函数
function getUserInfo(apiClient, userId) {
  return apiClient.fetchUser(userId).then(user => ({
    id: user.id,
    name: user.name.toUpperCase()
  }));
}

// 测试
test('should return formatted user info', () => {
  const mockApiClient = {
    fetchUser: jest.fn().mockResolvedValue({ id: 1, name: 'alice' })
  };

  return getUserInfo(mockApiClient, 1).then(result => {
    expect(result.name).toBe('ALICE');
    expect(mockApiClient.fetchUser).toHaveBeenCalledWith(1);
  });
});
Blackmail情节结构分析-经典电影叙事技巧解析 Rockstar舞蹈-热血街舞风格指南与学习资源 bagbadback怎么读?发音、含义与常见用法详解 Blacksouls什么意思?全面解析与常见用法 “Make a Fool of” 用法详解与例句|英语表达专题 Off-Bao 专题页-探索创意与效率的交汇点 Blacksouls2 维基百科-黑魂同人游戏全攻略指南 Come Back Form-高效表单恢复与数据回填解决方案 backpack发音-英文单词“backpack”标准美式与英式发音指南 Blackmagiocam软件讲解-功能、使用方法与常见问题指南 Blacksouls白雪姬誓约-游戏角色与剧情深度解析 Claim 与 Proclaim 的区别与用法详解|语言学习专题 Blackbox隐喻含义解析-技术、哲学与日常中的黑箱思维 mblock是什么软件?功能介绍与使用指南 Blackhole 的隐喻:吞噬、沉默与重生 BlackBison英菲尼迪-高性能豪华SUV专题 BlackMamba 歌曲免费下载-高品质MP3免费获取 Bookmark软件推荐-高效书签管理工具大全 Black Mirror 是什么意思?深度解析《黑镜》剧集主题与含义 Setback, Setup, and Comeback:从挫折到成功的三部曲 bIock短语-常见表达与使用指南 Blacksouls格林设定-黑魂同人游戏世界观与角色解析 Backup 缩写含义与使用指南|全面解析 Backup 的常见用法 “Black Cloud”可数吗?英语名词用法详解 Bumbaclot:牙买加语中的经典俚语解析 Block Are From-探索积木的起源与创意世界 “lying on my back”是什么意思?英文短语详解与用法指南 瞬(Back Number)罗马音歌词-完整版带假名注音 Forwards and Backwards:探索前行与回溯的智慧 Hold Peers Back:理解与应对同伴阻力现象 Back to School 开学指南|新学期准备清单与实用建议 Backward-探索回溯、反思与逆向思维 Know My Name-了解名字背后的故事与意义 look back on 的例句大全-英语短语用法详解 Blackmagic 如何照相-拍摄技巧与使用指南 Blackmail情节发展解析-经典叙事结构与影视案例 回顾 Look Back To-铭记过去,展望未来 BodyCombat莱美搏击-全球热门健身课程指南 Welcome Back to Home-温馨归家指南 Jackbox 游戏专题-聚会必备的趣味互动游戏合集 back怎么读音发音-英语单词“back”标准发音与释义详解 Block挖矿项目-分布式区块链挖矿解决方案 Dreamback是什么意思?全面解析与使用指南 lambcakewe 是什么意思?全面解析与常见误解 mlblock软件安装指南-快速上手与配置教程 Blacksoul攻略大全-角色技能、装备搭配与通关技巧 Back Row 是什么意思?全面解析与使用场景 Wombat英语-轻松高效学英语 Blockmap 专题页-区块地图技术与应用指南 Mock翻译工具-在线免费文本翻译与模拟翻译服务 Back to Earth 纯音乐-宁静回归自然的听觉之旅 Blackmail公爵人物分析-深度解析经典角色 苹果Make Book使用指南-创建精美电子书的完整教程 Back支持怎么用?全面使用指南与技巧 iamcomeback中文-专注高效办公与跨平台协作 srtback-字幕文件备份与管理工具 BlackMarket怎么样?全面解析与使用指南 Back in China-回到中国的实用指南与生活贴士 sb be made to do 用法详解-英语语法专题 Remarketable-智能再营销解决方案指南 Wacom与冠7LONGWEN-数位板与手写屏专业指南 Pay Off 与 Pay Back 的区别与用法详解|英语学习专题 Comeback 歌谱-免费查看与下载经典歌曲乐谱 Black Souls II 图文攻略大全-全流程、隐藏要素与Boss打法详解 Come Back After Ending 翻译-中文含义与使用解析 TopCashback中国7LONGWEN-高返现购物返利平台 Blackmagic 相机使用指南与资源专题|专业摄影摄像利器 Remark of-专注记录与思考的专题页面 Mobile CCB-中国建设银行手机银行使用指南与技巧 Some PLEASE Come Back-情感专题页面 A Memory to Remember-珍藏回忆专题页 Break Back 专题|重返巅峰,突破自我 BackWerk-面包与烘焙爱好者的专属天地 我的妈妈是一位厨师-家庭美食与爱的故事 Blacksouls1 冷狐直装-安卓游戏资源专题页 迈克Black-个人专题主页 Facebook的AI叫什么?Meta人工智能助手Llama系列详解 Bamboom-探索自然与科技的和谐之美 I'mcomeback翻译-含义解析与使用指南 Blacksouls1 刷魂指南-高效刷魂技巧与流程详解 “black”正确发音指南-英文单词发音教学 打地鼠游戏-在线经典休闲小游戏 accompany sb. to 用法详解|英语短语学习专题 make out to be 的用法详解|英语短语学习专题 Come and Meet-欢迎相遇,开启精彩旅程 BackWerk7LONGWEN-专业烘焙解决方案提供商 Logback 78TP下载-高性能 Java 日志框架 Black中文谐音大全-趣味英语发音与中文对照指南 Back Row 专题指南-高效协作与后排视角解析 CoolBlack面料介绍-高性能黑色功能面料专业指南 兰博英文Rambo-经典动作电影角色专题 comb音标怎么写-英语发音与拼读指南 makkou品牌介绍-简约设计,品质生活 Mock 是什么意思?Mock 翻译为中文详解 Backgarden-打造你的私人后花园|园艺设计与灵感指南 Boom Clap 歌词-Charli XCX 78TP歌词页面 Black 与 Brown 的区别详解|颜色辨识指南 Black Mike 还是 Mike Black?名字顺序解析与文化差异 Boat Neck 领型指南-时尚穿搭专题 BlackMamba是什么品牌?全面解析其起源、产品与市场定位