图书介绍
JUnit实战 原书第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)塔凯文;(美)莱蒙,(美)马索尔等著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115274755
- 出版时间:2012
- 标注页数:442页
- 文件大小:83MB
- 文件页数:469页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
JUnit实战 原书第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 认识JUnit3
第1章JUnit起步3
1.1证实它能运行4
1.2从零开始6
1.3理解单元测试框架8
1.4 JUnit的设计目标9
1.5安装JUnit9
1.6使用JUnit测试10
1.7小结13
第2章 探索JUnit的核心14
2.1探索JUnit核心15
2.2运行参数化测试17
2.3 JUnit的测试运行器18
2.3.1测试运行器简介18
2.3.2 JUnitCore facade19
2.3.3自定义测试运行器20
2.4用Suite来组合测试20
2.4.1组合一组测试类20
2.4.2组合一组测试集21
2.4.3 Suite、IDE、Ant与Maven22
2.5小结23
第3章 掌握JUnit24
3.1引入controller组件24
3.1.1设计接口25
3.1.2实现基类27
3.2让我们来测试它29
3.2.1测试DefaultController29
3.2.2添加一个处理器30
3.2.3请求处理33
3.2.4改进testProcessRequest37
3.3测试异常处理38
3.3.1模拟异常条件39
3.3.2测试异常42
3.4超时测试43
3.5引入Hamcrest匹配器45
3.6创建测试项目48
3.7小结49
第4章 软件测试原则50
4.1单元测试的必要性51
4.1.1带来更高的测试覆盖率51
4.1.2提高团队效率51
4.1.3监测衰退和减少调试51
4.1.4自信地重构52
4.1.5改进实现52
4.1.6将预期的行为文档化53
4.1.7启用代码覆盖率以及其他指标53
4.2测试类型54
4.2.1软件测试的4种类型54
4.2.2单元测试的3种类型57
4.3黑盒测试与白盒测试58
4.4小结60
第2部分 不同的测试策略63
第5章 测试覆盖率与开发63
5.1测量测试覆盖率63
5.1.1测试覆盖率简介64
5.1.2 Cobertura简介64
5.1.3生成测试覆盖率报告66
5.1.4结合黑盒与白盒测试67
5.2编写可测试的代码68
5.2.1公共API是协议68
5.2.2减少依赖关系68
5.2.3创建简单的构造函数69
5.2.4遵循最少知识原则70
5.2.5避免隐藏的依赖关系与全局状态70
5.2.6单态模式的优点和缺点71
5.2.7优先使用通用方法72
5.2.8组合优先于继承73
5.2.9多态优先于条件语句73
5.3测试驱动开发74
5.3.1调整开发周期74
5.3.2 TDD的两个步骤75
5.4在开发周期中的测试76
5.5小结79
第6章 使用stub进行粗粒度测试80
6.1 stub简介81
6.2使用stub测试一个HTTP连接82
6.2.1选择使用stub的方案83
6.2.2使用Jetty作为嵌入式服务器84
6.3使用stub替换Web服务器资源86
6.3.1建立第一个stub测试86
6.3.2针对故障情况进行测试89
6.3.3回顾第一个stub测试90
6.4替换连接91
6.4.1创建自定义的URL协议处理器91
6.4.2创建一个JDK的HttpURLConnection stub92
6.4.3运行测试93
6.5小结94
第7章 使用mock objects进行测试95
7.1 mock objects简介96
7.2使用mock objects进行单元测试96
7.3使用mock objects来重构99
7.3.1重构示例100
7.4替换一个HT1T1P连接102
7.4.1定义mock objects103
7.4.2测试一个简单的方法104
7.4.3第一次尝试:简单的方法重构技巧104
7.4.4第二个尝试:使用类工厂来重构106
7.5把mocks用作特洛伊木马109
7.6介绍mnock框架112
7.6.1使用EasyMock112
7.6.2使用Mock116
7.7小结119
第8章 容器内测试121
8.1标准单元测试的局限性121
8.2 mock objects解决方案122
8.3容器内测试124
8.3.1实现策略124
8.3.2容器内测试框架125
8.4比较stub、mock objects和容器内测试125
8.4.1 stub的优点与缺点125
8.4.2 mock objects的优点和缺点126
8.4.3容器内测试的优点与缺点127
8.4.4容器内测试与容器外测试129
8.5小结129
第3部分JUnitit与构建过程133
第9章从Ant中运行JUnit测试133
9.1生命中的一天133
9.2从Ant中运行测试134
9.3认识并安装Ant135
9.4 Ant的目标、项目、属性以及任务136
9.4.1 javac任务138
9.4.2 JUnit任务139
9.5让Ant来执行任务140
9.6使用Ivy进行依赖管理141
9.7创建HTML报告143
9.8批处理测试145
9.9小结147
第10章从Maven2中运行JUnit测试148
10.1 Maven的功能149
10.1.1约定优于配置149
10.1.2强大的依赖管理150
10.1.3 Maven的构建生命周期151
10.1.4基于插件的架构152
10.1.5 Maven项目对象模型153
10.2建立一个Maven项目155
10.3 Maven插件的引入159
10.3.1 Maven的Compiler插件159
10.3.2 Maven的Surefire插件160
10.3.3使用Maven生成HTML格式的JUnit报告162
10.4 Maven的不足163
10.5小结164
第11章 持续集成工具165
11.1尝试持续集成165
11.1.1持续集成测试166
11.2拯救用户的CruiseControl168
11.2.1开始使用CruiseControl168
11.2.2创建一个示例项目169
11.2.3解析CruiseControl配置文件169
11.3另一个持续集成工具——Hudson174
11.3.1 Hudson简介175
11.3.2安装175
11.3.3配置Hudson176
11.3.4配置Hudson中的项目177
11.4持续集成的优势180
11.5小结180
第4部分JUnit扩展185
第12章 表示层的测试185
12.1选择测试框架186
12.2 HtmlUnit简介186
12.2.1一个实例186
12.3编写HtmlUnit测试187
12.3.1 HTML断言187
12.3.2对特定的Web浏览器进行测试188
12.3.3测试多个Web浏览器188
12.3.4创建独立的测试189
12.3.5导航对象模型191
12.3.6通过特定的元素类型访问元素191
12.3.7通过名字与索引访问元素191
12.3.8通过引用访问元素192
12.3.9使用XPath193
12.3.10测试失败和异常194
12.3.11应用程序与网络导航195
12.3.12使用HtmlUnit测试表单197
12.3.13 测试框架(frame)198
12.3.14测试JavaScript199
12.3.15测试CSS201
12.3.16 SSL错误202
12.4集成HtmlUnit和Cactus202
12.4.1在Cactus中编写测试202
12.5Selenium简介204
12.6生成Selenium测试206
12.6.1一个实例206
12.7运行Selenium测试207
12.7.1管理Selenium服务器207
12.7.2使用JUnit4运行Selenium测试208
12.8编写Selenium测试211
12.8.1针对特定的Web浏览器进行测试211
12.8.2测试多个浏览器212
12.8.3应用程序和网络导航214
12.8.4通过引用访问元素215
12.8.5通过异常使测试失败215
12.8.6使用Selenium测试表单216
12.8.7 测试JavaScript告警216
12.8.8捕获一个JUnit 3测试失败的截屏217
12.8.9捕获一个JUnit 4测测试失败的截屏217
12.9 HtmlUnit与Selenium218
12.10小结219
第13章Ajax测试220
13.1 Ajax应用程序难以测试的原因221
13.1.1传统的Web交互221
13.1.2Ajax交互221
13.1.3一个崭新的世界223
13.1.4 测试的挑战223
13.2 Ajax的测试模式223
13.2.1功能测试224
13.2.2客户端脚本单元测试224
13.2.3服务测试225
13.3功能测试225
13.3.1使用Seleniun进行功能测试225
13.3.2使用HtmlUnit进行功能测试229
13.4 JavaScript测试231
13.4.1使用RhinoUnit测试JavaScript231
13.4.2使用JsUnit测试JavaScript234
13.4.3编写JsUnit测试用例234
13.4.4编写JsUnit测试集236
13.4.5手动运行JsUnit测试用例237
13.4.6使用Ant自动运行JsUnit测试用例238
13.5RhinoUnit与JsUnit241
13.6使用JSLint检验最佳实践241
13.7使用HttpClient测试服务243
13.7.1调用XML服务243
13.7.2验证XML响应244
13.7.3验证JSON响应245
13.8测试Google Web工具箱应用程序247
13.8.1为GWT应用程序选择测试框架247
13.8.2手动创建GWTTestCase249
13.8.3使用junitCreator创建GWTTestCase251
13.8.4运行测试用例252
13.8.5安装和拆卸测试252
13.8.6创建测试集252
13.8.7运行测试集253
13.9小结253
第14章 使用Cactus进行服务器端的Java测试255
14.1什么是Cactus?256
14.2使用Cactus进行测试256
14.2.1你可以使用Cactus测试的Java组件256
14.2.2一般原则257
14.2.3 Cactus如何工作259
14.3测试servlet和filters261
14.3.1介绍管理应用程序262
14.3.2使用Cactus编写servlet测试262
14.4测试JSP268
14.4.1回顾管理应用程序268
14.4.2什么是JSP单元测试?269
14.4.3单独使用Cactus对JSP进行单元测试269
14.4.4利用SQL结果数据执行JSP270
14.5测试EJB272
14.6什么是Cargo?274
14.7使用Ant执行Cactus测试275
14.7.1用来准备文件的Cactus275
14.8使用Maven2x执行Cactus测试280
14.8.1 Maven2 cactifywarMOJO280
14.8.2 Maven2 cactifyearMOJO284
14.9从浏览器执行Cactus测试285
14.10小结286
第15章 测试JSF应用程序287
15.1引入JSF288
15.2介绍示例应用程序289
15.3测试JSF应用程序时的典型问题295
15.4测试JSF应用程序的策略296
15.4.1黑盒方法296
15.4.2 Mock object援救296
15.5使用JSUnit测试示例应用程序298
15.5.1从浏览器执行一个JSFUnit测试299
15.5.2使用JSFUnit测试Ajax299
15.6使用HtmlUnit与JSFUnit301
15.7 JSF应用程序的性能测试302
15.8小结304
第16章 测试OSGi组件305
16.1 OSGi简介306
16.2第一个OSGi服务307
16.2.1示例应用程序310
16.3测试OSGi服务313
16.3.1 Mock objects313
16.4引入JUmt4OSGi316
16.5小结320
第17章 测试数据库访问321
17.1数据库单元测试的阻抗不匹配322
17.1.1单元测试必须执行隔离的代码322
17.1.2单元测试必须易于编写和运行322
17.1.3单元测试必须运行快速323
17.2 DbUnit介绍323
17.2.1示例应用程序324
17.2.2设置DbUnit并运行示例应用程序325
17.3使用数据集来填充数据库325
17.3.1 剖析DatabaseOperation329
17.4用数据集断言数据库状态330
17.4.1过滤数据集332
17.4.2忽略数据列332
17.5使用ReplacementDataSet转换数据334
17.5.1使用ReplacementDataSet处理不同的ID问题334
17.5.2处理NULL值336
17.6从已有的数据库数据中创建数据集340
17.7高级技术341
17.7.1 DbUnit与模板设计模式341
17.7.2通过自定义注释提高重用344
17.7.3在数据集中使用表达式语言346
17.8数据库访问测试的最佳做法349
17.8.1每个开发者使用一个数据库349
17.8.2确保目标数据库被测试350
17.8.3为加载和存储数据创建互补测试350
17.8.4编写加载测试用例时,应涵盖所有基本场景350
17.8.5计划数据集的使用351
17.8.6测试清理351
17.9小结352
第18章 测试基于JPA的应用程序353
18.1测试多层应用程序354
18.1.1示例应用程序354
18.1.2多层、多种测试策略356
18.2 JPA测试的方方面面359
18.3准备基础设施360
18.4测试JPA实体映射364
18.4.1使用JPA ID生成器集成测试用例365
18.5测试基于JPA的DAO371
18.6测试外键名字376
18.7小结379
第 19章JUnit的其他用法380
19.1介绍381
19.1.1工具概述381
19.1.2运行示例382
19.2透明地使用mock382
19.2.1 Unitils的EasyMock支持383
19.2.2 FEST-Mocks385
19.2.3 Mycila386
19.3 DbUnit集成388
19.4使断言更简单391
19.4.1 JUnit-addons断言包392
19.4.2 Unitlis的ReflectionAssert393
19.4.3 FEST流畅断言模块395
19.4.4 Mylica继承断言396
19.5使用反射绕过封装397
19.5.1内部替代物397
19.5.2 JUnit-addons399
19.5.3 FEST-Reflect400
19.6小结401
附录A JUnit 3和JUnit 4之间的不同403
A.1全球的需求变化403
A.1.1 JDK的要求403
A.1.2向后/向前兼容404
A.2 API中的变化404
A.2.1包结构404
A.2.2构造函数404
A.2.3扩展TestCase404
A.2.4测试方法名称405
A.3注释与新增的静态导入405
A.3.1 @Before与@After注释405
A.3.2 @BeforeClass和@AfterClass注释406
A.3.3忽略测试的差异406
A.3.4静态导入407
A.3.5异常测试407
A.3.6超时测试408
A.4新的JUnut runners408
A.4.1测试运行器(Test runner)408
A.4.2测试集409
A.4.3参数化测试409
A.5新的断言和假设410
A.5.1 Hamcrest断言411
A.5.2假设411
A.5.3新断言412
A.5.4断言错误412
附录B使用自定义的运行器和匹配器扩展JUnitAPI413
B.1介绍拦截器模式414
B.2实现自定义运行器414
B.3实现自定义匹配器420
附录C本书源代码425
C.1获取源代码425
C.2源代码概览426
C.3外部库427
C.4 JAR版本427
C.5目录结构约定428
附录D JUnit IDE集成429
D.1 JUnit与Eclipse的集成429
D.1.1安装Eclipse429
D.1.2从源代码创建Eclipse项目430
D.1.3从Eclipse运行JUnit测试430
D.1.4从Eclipse运行Ant脚本431
D.2引入JUnitMAX Eclipse插件433
D.2.1集成在你的开发周期中433
D.2.2执行顺序434
D.2.3恢复到上一个稳定版本434
D.3 JUnit与NetBeans集成434
D.3.1安装NetBeans434
D.3.2从源代码中创建NetBeans项目435
D.3.3从NetBeans运行JUnit测试435
D.3.4从NetBeans运行Ant脚本437
附录E安装软件439
E.1安装HtmlUnit439
E.1.1标准配置439
E.1.2 Eclipse的配置440
E.2使用HtmlUnit配置Cactus441
E.3安装Selenium442
E.4安装RhinoUnit442
E.5安装JsUnit442
热门推荐
- 2792028.html
- 2462622.html
- 2715951.html
- 1621986.html
- 2568761.html
- 1831064.html
- 2378246.html
- 2343798.html
- 1237194.html
- 2699207.html
- http://www.ickdjs.cc/book_529054.html
- http://www.ickdjs.cc/book_2366904.html
- http://www.ickdjs.cc/book_43480.html
- http://www.ickdjs.cc/book_46208.html
- http://www.ickdjs.cc/book_2362684.html
- http://www.ickdjs.cc/book_1398006.html
- http://www.ickdjs.cc/book_750918.html
- http://www.ickdjs.cc/book_2515747.html
- http://www.ickdjs.cc/book_748489.html
- http://www.ickdjs.cc/book_1705972.html