图书介绍
.NET单元测试艺术PDF|Epub|txt|kindle电子书版本网盘下载
![.NET单元测试艺术](https://www.shukui.net/cover/23/33427859.jpg)
- (以色列)奥西洛夫著;张昌贵,张博超,李丁山译 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302269168
- 出版时间:2012
- 标注页数:297页
- 文件大小:50MB
- 文件页数:318页
- 主题词:网页制作工具-程序设计
PDF下载
下载说明
.NET单元测试艺术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 入门3
第1章 单元测试的基本知识3
1.1单元测试——传统定义4
1.1.1编写“优秀单元测试”的重要性5
1.1.2我们都写过单元测试(或多或少)5
1.2优秀单元测试的特性6
1.3集成测试7
1.4优秀的单元测试——定义11
1.5一个简单的单元测试实例12
1.6测试驱动开发16
1.7小结19
第2章 第一个单元测试21
2.1单元测试框架22
2.1.1单元测试框架的优势提供了什么22
2.1.2 xUnit测试框架25
2.2 LogAn项目的介绍25
2.3使用NUnit的第一步26
2.3.1安装NUnit26
2.3.2加载解决方案27
2.3.3在代码中使用NUnit特性29
2.4编写第一个测试30
2.4.1 Assert类31
2.4.2用NUnit运行我们的第一个测试31
2.4.3修正代码让测试通过32
2.4.4从红色到绿色33
2.5更多NUnit特性33
2.5.1 setup和teardown33
2.5.2验证预期的异常36
2.5.3忽略测试39
2.5.4设置测试类别39
2.6针对状态的间接测试40
2.7小结44
第Ⅱ部分 核心技术49
第3章 使用桩对象解除依赖49
3.1桩对象50
3.2发现LogAn对文件系统的依赖51
3.3确认简化LogAnalyzer测试的方法52
3.4重构设计增强了可测性54
3.4.1抽取接口,以允许替换底层实现55
3.4.2在被测类中注入桩对象57
3.4.3在构造函数级别上接收一个接口(构造函数注入)58
3.4.4接收一个接口作为属性的get或set的类型63
3.4.5在调用方法之前获取一个桩对象65
3.5重构技术的变种74
3.6解决封装问题77
3.6.1使用internal和[InternalVisibleTo]78
3.6.2利用[Conditional]属性标签78
3.6.3使用#if和#endif的条件编译79
3.7小结80
第4章 用模拟对象做交互测试83
4.1基于状态的测试和交互测试84
4.2模拟对象和桩对象之间的区别85
4.3简单的手写模拟对象例子87
4.4同时使用模拟对象和桩对象90
4.5一个测试一个模拟对象95
4.6桩链:产生模拟对象或其他桩的一批桩对象95
4.7手写模拟对象和桩对象的问题97
4.8小结97
第5章 隔离(模拟对象)框架101
5.1为什么使用隔离框架102
5.2动态创建伪对象104
5.2.1在测试中引入Rhino Mocks104
5.2.2使用动态模拟对象替换手写模拟对象105
5.3严格模拟对象与非严格模拟对象109
5.3.1严格模拟对象109
5.3.2非严格模拟对象109
5.4从伪对象返回值111
5.5用隔离框架创建智能桩对象113
5.5.1在Rhino Mocks框架中创建桩对象113
5.5.2结合使用动态桩对象和模拟对象115
5.6模拟对象和桩对象的参数约束119
5.6.1用字符串约束检查参数119
5.6.2使用约束检验参数对象的属性121
5.6.3执行回调检验参数124
5.7测试与事件相关的活动126
5.7.1测试一个事件已被订阅126
5.7.2在模拟对象和桩对象中触发事件128
5.7.3测试一个事件是否被触发129
5.8隔离框架中的设置-操作-断言语法131
5.9 .NET中现有的隔离框架135
5.9.1 NUnit.Mocks136
5.9.2 NMock136
5.9.3 NMock2136
5.9.4 Typemock Isolator137
5.9.5 Rhino Mocks138
5.9.6 Moq框架139
5.10隔离框架的优势140
5.11避免使用隔离框架时的陷阱140
5.11.1测试代码缺乏可读性141
5.11.2对错误的事情做验证141
5.11.3一个测试包含多个模拟对象141
5.11.4测试的细节太多142
5.12小结143
第Ⅲ部分 测试的代码147
第6章 测试层次及组织147
6.1让自动化构建运行自动化测试148
6.1.1自动构建剖析148
6.1.2触发构建和持续集成150
6.1.3自动化构建类型150
6.2根据速度和类型组织测试151
6.2.1分离单元测试与集成测试的人为因素152
6.2.2绿色安全区域153
6.3确保测试在代码库中154
6.4在测试类和被测代码之间建立映射154
6.4.1映射测试到项目154
6.4.2映射测试到类155
6.4.3映射测试到方法156
6.5为应用程序打造测试API156
6.5.1使用测试类的继承模式157
6.5.2新建测试工具类和方法175
6.5.3让程序员知道你的API176
6.6小结177
第7章 优秀单元测试的支柱179
7.1编写可信赖的测试180
7.1.1决定何时删除或更改测试180
7.1.2避免测试的逻辑186
7.1.3只测试一件事情187
7.1.4让测试容易运行188
7.1.5确保测试覆盖率188
7.2编写可维护的测试190
7.2.1测试私有的或者受保护的方法190
7.2.2去除重复代码192
7.2.3让Setup方法可维护197
7.2.4实施测试隔离200
7.2.5避免多个断言208
7.2.6避免测试同一个对象的多个方面212
7.2.7避免在测试里过度关注细节215
7.3编写可读的测试220
7.3.1为单元测试命名220
7.3.2为变量命名222
7.3.3让断言有意义223
7.3.4将断言和动作分离224
7.3.5 setup和teardown225
7.4小结226
第Ⅳ部分 设计与流程231
第8章 在组织中引入单元测试231
8.1怎样成为变革推动者232
8.1.1备战棘手问题232
8.1.2说服内部人士:拥护者与阻碍者232
8.1.3洞察切入机会234
8.2成功之路235
8.2.1游击策略(自下而上)235
8.2.2说服管理层(自上而下)236
8.2.3从外面找一个专家236
8.2.4让过程可见237
8.2.5锁定目标238
8.2.6意识到即将面对的阻碍240
8.3失败之路241
8.3.1缺乏驱动力241
8.3.2缺乏政治上的支持241
8.3.3不好的实施和第一印象241
8.3.4缺乏团队支持242
8.4棘手的问题及其答案242
8.4.1在现有的流程上会增加多少时间243
8.4.2测试人员的工作会因此受到威胁吗245
8.4.3怎么知道这确实可行呢245
8.4.4有什么可以证明单元测试的好处246
8.4.5为什么测试部门还是能找到缺陷246
8.4.6我们有很多没有测试的代码:该从哪里开始呢247
8.4.7使用多种语言开发:单元测试适用吗248
8.4.8如果是软硬件结合的开发,该怎么办248
8.4.9怎么知道测试本身是否有缺陷248
8.4.10我的调试器显示代码可以正常工作:为什么还需要测试248
8.4.11必须用TDD的方式来编码吗249
8.5小结249
第9章 修改遗留代码251
9.1从哪里开始添加测试?252
9.2确定抉择策略254
9.2.1容易优先策略的优缺点254
9.2.2困难优先策略的优缺点255
9.3在重构前写集成测试256
9.4重要的遗留代码单元测试工具258
9.4.1使用Typemock Isolator轻松隔离依赖项258
9.4.2使用Depender找出可测性问题260
9.4.3在Java遗留代码里使用JMockit260
9.4.4重构Java代码时使用Vise262
9.4.5使用FitNesse在重构前做验收测试264
9.4.6阅读Michael Feathers的关于遗留代码的书265
9.4.7使用NDepend来审查生产代码265
9.4.8使用ReSharper浏览和重构生产代码266
9.4.9使用Simian来检测重复代码(和缺陷)266
9.4.10使用Typemock Racer来检测线程问题267
9.5小结267
附录A设计与可测试性269
附录B工具和框架281