登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

『簡體書』单元测试的艺术(第2版)

書城自編碼: 2434133
分類: 簡體書→大陸圖書→計算機/網絡软件工程/开发项目管理
作 者: 奥西洛夫 (Roy Osherove),金迎
國際書號(ISBN): 9787115360359
出版社: 人民邮电出版社
出版日期: 2014-08-01
版次: 1 印次: 1
頁數/字數: 228/380000
書度/開本: 16开 釘裝: 平装

售價:NT$ 531

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
大英博物馆东南亚简史
《 大英博物馆东南亚简史 》

售價:NT$ 806.0
纯粹·我只要少许
《 纯粹·我只要少许 》

售價:NT$ 367.0
投机苦旅:一位投机客的凤凰涅槃
《 投机苦旅:一位投机客的凤凰涅槃 》

售價:NT$ 403.0
重返马赛渔场:社会规范与私人治理的局限
《 重返马赛渔场:社会规范与私人治理的局限 》

售價:NT$ 316.0
日子慢慢向前,事事慢慢如愿
《 日子慢慢向前,事事慢慢如愿 》

售價:NT$ 254.0
场景供应链金融:将风口变成蓝海
《 场景供应链金融:将风口变成蓝海 》

售價:NT$ 509.0
汗青堂丛书146·布鲁克王朝:一个英国家族在东南亚的百年统治
《 汗青堂丛书146·布鲁克王朝:一个英国家族在东南亚的百年统治 》

售價:NT$ 418.0
人生是旷野啊
《 人生是旷野啊 》

售價:NT$ 332.0

建議一齊購買:

+

NT$ 531
《 有效的单元测试(资深敏捷技术实践专家撰写,系统且深入地阐释单元测试用于软件设计的工具、方法、原则和最佳实践) 》
+

NT$ 621
《 人件(原书第3版) 》
+

NT$ 621
《 元素模式 》
+

NT$ 549
《 测试驱动开发:实战与模式解析(软件工程领域泰斗、极限编程之父Kent Beck力作,荣获第14届Jolt大奖,畅销不衰) 》
+

NT$ 846
《 持续交付:发布可靠软件的系统方法 》
編輯推薦:
基础概念+代码+具体分析
手把手教你学测试
解密神秘魔法:隔离框架
测试“不可测试”的代码
內容簡介:
《单元测试的艺术第2版》是经典的单元测试学习指南,分四部分全面介绍了单元测试技术。第一部分阐述单元测试基本概念,包括如何使用测试框架。第二部分讨论破除依赖的高级技术:模拟对象、存根和隔离框架,包括重构代码以使用这些技术的模式。第三部分介绍测试代码的组织方式、运行测试和重构测试结构的模式,以及编写测试的最佳实践。第四部分介绍如何在组织内实施变革和修改现有代码。
《单元测试的艺术第2版》适合所有语言的测试和开发人员,特别是测试主管和项目经理。
關於作者:
Roy Osherove 世界著名单元测试专家,常年为世界各地的开发团队提供咨询和培训服务,并在各种大会上发表演讲,内容包括单元测试及测试驱动开发的艺术、团队领导力和敏捷开发实践。其个人技术博客osherove.com平均月独立访问量约50 000,上提供了各种技术视频及其他培训信息,另著有Notes to a Software Team Leader: Growing Self Organizing Teams。
目錄
目 录

第一部分 入门
第1章 单元测试基础 2
1.1 逐步定义单元测试 2
1.1.1 编写优秀单元测试的重要性 4
1.1.2 我们都写过某种单元测试 4
1.2 优秀单元测试的特性 5
1.3 集成测试 5
1.4 什么是优秀的单元测试 9
1.5 一个简单的单元测试范例 9
1.6 测试驱动开发 12
1.7 成功进行TDD的三种核心技能 15
1.8 小结 15
第2章 第一个单元测试 17
2.1 单元测试框架 18
2.1.1 单元测试框架提供什么 18
2.1.2 xUnit框架 20
2.2 LogAn项目介绍 20
2.3 NUnit初步 20
2.3.1 安装NUnit 21
2.3.2 加载解决方案 22
2.3.3 在代码中使用NUnit属性 24
2.4 编写第一个测试 25
2.4.1 Assert类 25
2.4.2 用NUnit运行第一个测试 26
2.4.3 添加正检验 27
2.4.4 从红到绿:测试成功 28
2.4.5 测试代码格式 28
2.5 使用参数重构测试 28
2.6 更多NUnit属性 30
2.6.1 setup和teardown 30
2.6.2 检验预期的异常 33
2.6.3 忽略测试 35
2.6.4 NUnit的方法语法 36
2.6.5 设置测试类别 37
2.7 测试系统状态的改变而非返回值 37
2.8 小结 41
第二部分 核心技术
第3章 使用存根破除依赖 44
3.1 存根简介 44
3.2 发现LogAn中对文件系统的依赖 45
3.3 如何使测试LogAnalyzer变得容易 46
3.4 重构代码设计以提高可测试性 48
3.4.1 抽取接口使底层实现可替换 49
3.4.2 依赖注入:在被测试单元中注入一个伪实现 51
3.4.3 在构造函数层注入一个伪对象构造函数注入 51
3.4.4 用伪对象模拟异常 55
3.4.5 用属性get或set注入伪对象 56
3.4.6 在方法调用前注入伪对象 57
3.5 重构技术变种 63
3.6 克服封装问题 65
3.6.1 使用internal和[InternalsVisibleTo] 65
3.6.2 使用[Conditional]属性 66
3.6.3 使用#if和#endif进行条件编译 66
3.7 小结 67
第4章 使用模拟对象进行交互测试 68
4.1 基于值的测试、基于状态的测试和交互测试 68
4.2 模拟对象和存根的区别 70
4.3 手工模拟对象的简单示例 71
4.4 同时使用模拟对象和存根 73
4.5 每个测试一个模拟对象 78
4.6 伪对象链:用存根生成模拟对象或其他存根 78
4.7 手工模拟对象和存根的问题 79
4.8 小结 80
第5章 隔离模拟框架 81
5.1 为什么要使用隔离框架 81
5.2 动态生成伪对象 83
5.2.1 在测试中使用NSubstitute 83
5.2.2 用动态伪对象替换手工伪对象 84
5.3 模拟值 86
5.4 测试事件相关的活动 92
5.4.1 测试事件监听者 92
5.4.2 测试事件是否触发 93
5.5 现有的.NET隔离框架 94
5.6 隔离框架的优缺点 95
5.6.1 使用隔离框架时应避开的陷阱 96
5.6.2 测试代码不可读 96
5.6.3 验证错误的事情 96
5.6.4 一个测试多个模拟对象 96
5.6.5 过度指定测试 97
5.7 小结 97
第6章 深入了解隔离框架 99
6.1 受限框架及不受限框架 99
6.1.1 受限框架 99
6.1.2 不受限框架 100
6.1.3 基于探查器的不受限框架如何工作 101
6.2 优秀隔离框架的价值 103
6.3 支持适应未来和可用性的功能 103
6.3.1 递归伪对象 104
6.3.2 默认忽略参数 104
6.3.3 泛伪造 105
6.3.4 伪对象的非严格行为 105
6.3.5 非严格模拟对象 106
6.4 隔离框架设计反模式 106
6.4.1 概念混淆 106
6.4.2 录制和重放 107
6.4.3 粘性行为 109
6.4.4 复杂语法 109
6.5 小结 109
第三部分 测试代码
第7章 测试层次和组织 112
7.1 运行自动化测试的自动化构建 112
7.1.1 构建脚本结构 113
7.1.2 触发构建和集成 115
7.2 基于速度和类型布局测试 116
7.2.1 分离集成测试和单元测试的人为因素 117
7.2.2 绿色安全区 117
7.3 确保测试是源代码管理的一部分 118
7.4 将测试类映射到被测试代码 118
7.4.1 将测试映射到项目 118
7.4.2 将测试映射到类 118
7.4.3 将测试映射到具体的工作单元入口 119
7.5 注入横切关注点 120
7.6 为应用程序构建测试API 122
7.6.1 使用测试类继承模式 122
7.6.2 创建测试工具类和方法 133
7.6.3 把你的API介绍给开发人员 134
7.7 小结 134
第8章 优秀单元测试的支柱 136
8.1 编写可靠的测试 136
8.1.1 决定何时删除或修改测试 137
8.1.2 避免测试中的逻辑 140
8.1.3 只测试一个关注点 142
8.1.4 把单元测试和集成测试分开 143
8.1.5 用代码审查确保代码覆盖率 143
8.2 编写可维护的测试 144
8.2.1 测试私有或受保护的方法 145
8.2.2 去除重复代码 146
8.2.3 以可维护的方式使用setup方法 149
8.2.4 实施测试隔离 151
8.2.5 避免对不同关注点多次断言 156
8.2.6 对象比较 158
8.2.7 避免过度指定 160
8.3 编写可读的测试 162
8.3.1 单元测试命名 162
8.3.2 变量命名 163
8.3.3 有意义的断言 164
8.3.4 断言和操作分离 165
8.3.5 setup和teardown 165
8.4 小结 166
第四部分 设计和流程
第9章 在组织中引入单元测试 168
9.1 逐步成为变革的倡导者 168
9.1.1 准备好面对质疑 169
9.1.2 说服组织内成员:支持者和反对者 169
9.1.3 找到可能的切入点 169
9.2 成功之道 171
9.2.1 游击式实现自下而上 171
9.2.2 说服高层自上而下 171
9.2.3 引入外援 172
9.2.4 使进度可见 172
9.2.5 设定具体目标 173
9.2.6 应对障碍 175
9.3 失败原因 175
9.3.1 缺少驱动力 175
9.3.2 缺乏政策支持 175
9.3.3 不好的实现和第一印象 176
9.3.4 缺少团队支持 176
9.4 影响因素 176
9.5 质疑和回答 177
9.5.1 单元测试会给现有流程增加多少时间 178
9.5.2 单元测试是否会抢了QA饭碗 179
9.5.3 证明单元测试确实有效的方法 179
9.5.4 单元测试有用的证据 180
9.5.5 QA部门还是能找到缺陷的原因 180
9.5.6 我们有大量没有测试的代码:应该从哪里开始 181
9.5.7 我们使用多种编程语言:单元测试是否可行 181
9.5.8 软硬件结合的开发 181
9.5.9 确保测试中没有缺陷的方法 181
9.5.10 我的代码已经调试通过了,但还需要测试的原因 182
9.5.11 驱动开发测试的必要性 182
9.6 小结 182
第10章 遗留代码 183
10.1 从哪里开始增加测试 183
10.2 决定选择策略 185
10.2.1 先易后难策略的优缺点 185
10.2.2 先难后易策略的优缺点 186
10.3 在重构前编写集成测试 186
10.4 遗留代码单元测试的重要工具 187
10.4.1 使用不受限的隔离框架轻松隔离依赖项 187
10.4.2 使用JMockit测试Java遗留代码 189
10.4.3 重构Java代码时使用Vise 190
10.4.4 重构前使用验收测试 191
10.4.5 阅读Michael Feathers关于遗留代码的书 192
10.4.6 使用NDepend调查产品代码 192
10.4.7 使用ReSharper浏览和重构产品代码 192
10.4.8 使用Simian和TeamCity发现重复代码和缺陷 193
10.5 小结 193
第11章 设计与可测试性 194
11.1 为什么在设计时要关心可测试性 194
11.2 可测试性的设计目标 195
11.2.1 默认情况下将方法设置为虚拟方法 195
11.2.2 使用基于接口的设计 196
11.2.3 默认情况下将类设置为非密封的 196
11.2.4 避免在包含逻辑的方法内初始化具体类 197
11.2.5 避免直接调用静态方法 197
11.2.6 避免在构造函数和静态构造函数中包含逻辑代码 197
11.2.7 把单例逻辑和单例持有者分开 198
11.3 可测试性设计的利弊 199
11.3.1 工作量 199
11.3.2 复杂度 200
11.3.3 泄露敏感知识产权 200
11.3.4 有时无法实现 200
11.4 可测试性设计的替代方法 200
11.5 难以测试的设计示例 202
11.6 小结 205
11.7 更多资源 206
附录A 工具和框架 208

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.