| 作 者: | Richard Hightower Nicholas Lesiecki 唐一丁 蔡永航 唐一丁 |
| 出版社: | 机械工业出版社 |
| 丛编项: | 软件工程技术丛书 前沿论题系列 |
| 版权说明: | 本书为公共版权或经版权方授权,请支持正版图书 |
| 标 签: | Java |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
译者序
致谢
作者简介
前言
第一部分
关键概念介绍
第1章
Extreme
Programming介绍
2
1.1
极限编程概览
2
1.1.1
极限编程开发方法的四大价值
2
1.1.2
极限编程的五个原则
3
1.2
极限编程的12个实践原则
5
1.2.1
计划的制定
5
1.2.2
小版本
5
1.2.3
简单设计
6
1.2.4
测试
6
1.2.5
持续整合
6
1.2.6
重构
7
1.2.7
配对编程
7
1.2.8
代码共享
8
1.2.9
每周只工作40小时
9
1.2.10
现场客户
9
1.2.11
隐喻
9
1.2.12
编码标准
9
1.3
采用极限编程吗
9
1.4
小结
10
第2章
J2EE
部署
12
2.1
概述
12
2.2
JAR文件
14
2.2.1
JAR文件和applet
14
2.2.2
可执行的JAR文件
15
2.3
Web应用程序和WAR文件
16
2.4
EJB和EJB
JAR文件
18
2.5
企业级应用程序和EAR文件
21
2.6
小结
21
第3章
应用程序范例
23
3.1
概述
23
3.2
简单范例:基于Model2的HelloWorld
23
3.3
范例:宠物商店
24
3.4
宠物商店的最初版本
25
3.4.1
model类(公共的接口)
25
3.4.2
dbmodel类(实现)
26
3.4.3
数据库模型
27
3.4.4
Web接口
28
3.4.5
构建系统
31
3.5
用测试数据设置数据库:Ant小试牛刀
34
3.6
完整的代码清单
39
3.6.1
model包的完整代码清单
39
3.6.2
dbmodel包的完整代码清单
43
3.6.3
test包的完整代码清单
49
3.6.4
JSP和Web.xml的完整代码清单
55
3.7
小结
60
第二部分
掌握工具
第4章
使用Ant进行持续整合
62
4.1
概述
62
4.2
Ant使用基础
63
4.3
标准目标
65
4.3.1
简单的范例
65
4.3.2
使用特性一起运作
67
4.3.3
路径设置和fileset设置
68
4.3.4
条件性目标
70
4.3.5
使用过滤器
72
4.3.6
嵌套构建
73
4.4
小结
73
第5章
使用Ant建立Java应用程序
75
5.1
概述
75
5.2
Hello
World
Model项目
75
5.2.1
model类概览
76
5.2.2
为Model建立项目目录结构
77
5.2.3
为共享类库建立构建文件
77
5.2.4
model项目构建文件的分析
78
5.2.5
运行Ant构建文件
81
5.3
Hello
World应用程序项目
82
5.3.1
应用程序的Java类概览
82
5.3.2
为应用程序建立项目目录结构
83
5.3.3
为独立应用程序建立清单文件
83
5.3.4
为独立应用程序建立Ant构建文件
83
5.4
Hello
World主项目
86
5.4.1
建立主构建文件
86
5.4.2
关于主构建文件的分析
87
5.5
applet项目
88
5.5.1
applet类概览
88
5.5.2
为applet程序建立构建文件
91
5.5.3
使用Ant构建applet程序
92
5.6
Hello
World
功能翻新
93
5.7
小结
93
第6章
使用Ant建立J2EE应用程序
94
6.1
概述
94
6.2
Hello
World
94
6.3
Web应用程序项目
95
6.3.1
Web应用程序项目的目录结构
95
6.3.2
HelloWorldServlet.java
96
6.3.3
HelloWorldServlet分析
97
6.3.4
HelloWorld.jsp
98
6.3.5
HelloWorld
Web应用程序的部署
描述符
98
6.3.6
HelloWorld
Web应用程序的构建文件
99
6.3.7
构建和部署Web应用程序
105
6.3.8
运行Web应用程序
107
6.3.9
HelloWorld.jsp
applet
传递
108
6.3.10
在WAR文件中包含applet
109
6.4
企业级JavaBean
110
6.4.1
企业级Bean项目的目录结构
110
6.4.2
HelloWorld实体Bean
111
6.4.3
会话Bean
113
6.4.4
Shadow代理Bean
116
6.4.5
企业级JavaBean部署描述符
118
6.4.6
企业级Bean的构建文件
120
6.4.7
企业级Bean构建文件的分析
123
6.4.8
在Web应用程序构建文件中定义
ejb特性
125
6.4.9
运行构建文件
126
6.5
EAR
企业级应用程序
127
6.5.1
HelloWorld主项目构建文件
127
6.5.2
企业级应用程序构建文件的分析
129
6.5.3
企业应用程序部署描述符
131
6.6
宠物商店案例学习
132
6.7
小结
134
第7章
使用JUnit进行单元测试
136
7.1
JUnit概述
137
7.1.1
编写一个测试案例
138
7.1.2
使用Ant整合JUnit
143
7.2
案例研究:在宠物商店案例中
加入实体Bean
149
7.2.1
现有的JUnit测试概述
149
7.2.2
在宠物商店案例中加入EJB
157
7.2.3
建立一个Ant构建文件用以部署
我们的实体Bean
169
7.2.4
修改Test构建文件用以测试
我们的实体Bean
175
7.2.5
学习案例的小结
177
7.3
小结
177
第8章
使用Cactus测试容器服务
178
8.1
概述
178
8.2
为什么要做容器内测试
178
8.2.1
隔离测试:模拟对象
178
8.2.2
上下文测试:整合测试
179
8.2.3
一个混合手法
180
8.3
为什么使用Cactus
180
8.4
安装Cactus
181
8.4.1
服务器端安装
182
8.4.2
客户端安装
183
8.4.3
一个简单的范例
184
8.5
Cactus系统架构
185
8.5.1
开始执行
185
8.5.2
beginXXX()方法
186
8.5.3
调用转向器Servlet
186
8.5.4
服务器端安装
186
8.5.5
服务器端执行
187
8.5.6
结果集合和后处理
187
8.6
编写Cactus测试
188
8.6.1
被测试的代码
188
8.6.2
继承适当的类
190
8.6.3
beginXXX()方法
190
8.6.4
隐含对象
191
8.6.5
setUp()和tearDown()
192
8.6.6
testXXX()
193
8.6.7
endXXX()
193
8.7
Cactus与Ant的使用
195
8.8
Filter测试
196
8.9
JSPTestCase和自定义标记
198
8.10
案例学习:使用自定义标记的
宠物商店程序
213
8.10.1
业务需求
213
8.10.2
寻找一个开始点
213
8.10.3
测试案例
214
8.11
小结
219
第9章
使用HttpUnit进行功能测试
220
9.1
为什么要做功能测试
220
9.2
为什么要使用HttpUnit
221
9.3
HttpUnit基础
222
9.3.1
WebClient(客户端)功能介绍
222
9.3.2
响应检查和多页面处理
223
9.4
HttpUnit的高级话题
231
9.4.1
DOM检查
232
9.4.2
Header和Cookies
233
9.4.3
框架页面
233
9.4.4
SSL
234
9.4.5
HttpUnitOptions
234
9.4.6
技术局限性
234
9.5
蜘蛛范例程序
234
9.5.1
蜘蛛程序开发:第一个循环
235
9.5.2
蜘蛛程序开发:二次循环
236
9.5.3
蜘蛛工具将来的工作
240
9.6
小结
240
第10章
使用JMeter测试应用程序性能
241
10.1
概述
241
10.2
JMeter概述
242
10.3
JMeter概念
242
10.4
使用JMeter测试Web应用程序
浏览程序
244
10.5
使用JMeter测试Web应用程序
的表单条目
249
10.6
使用JMeter测试我们的RDBMS
的性能
255
10.7
案例学习:宠物商店
257
10.7.1
业务需求
257
10.7.2
建立测试
259
10.7.3
分析
262
10.7.4
结论
263
10.8
小结
263
第11章
使用JUnitPerf进行负载测试
264
11.1
概述
264
11.2
JUnitPerf概念
264
11.3
TimedTest范例
265
11.4
LoadTest范例
272
11.5
案例学习
273
11.5.1
HTTPUnit测试
273
11.5.2
JMeter配置
275
11.5.3
将它们放在一块
275
11.5.4
结论
278
11.6
小结
279
第三部分
API和标记参考
第12章
Ant标记参考
282
12.1
Ant命令行选项
282
12.2
Ant的父元素
283
12.2.1
project标记
283
12.2.2
target标记
283
12.2.3
path标记
284
12.2.4
filter标记
285
12.2.5
tstamp标记
285
12.3
Ant关键任务
286
12.3.1
Ant任务
286
12.3.2
antcall任务
286
12.3.3
available任务
287
12.3.4
echo任务
288
12.3.5
fail任务
288
12.3.6
property任务
288
12.3.7
taskdef任务
289
12.4
目录和文件系统任务
289
12.4.1
chmod任务
289
12.4.2
copy任务
290
12.4.3
delete任务
290
12.4.4
mkdir任务
291
12.4.5
move任务
291
12.4.6
touch任务
292
12.5
外部执行任务
292
12.5.1
apply任务
292
12.5.2
exec任务
293
12.5.3
execon任务
294
12.5.4
java
任务
295
12.5.5
javac任务
295
12.5.6
sql任务
296
12.6
文件库任务
298
12.6.1
jar任务
298
12.6.2
war任务
298
12.6.3
zip任务
299
12.6.4
unjar.
unzip和unwar任务
300
12.7
文件读写和控制
300
12.7.1
replace任务
300
12.7.2
mail任务
301
12.8
源代码控制任务
301
12.8.1
cvs任务
301
12.8.2
get任务
302
12.9
一些关键的可选任务
302
12.9.1
junit任务
302
12.9.2
junitReport任务
303
12.10
常用的嵌套参数和元素
304
12.10.1
classpath元素
304
12.10.2
mapper元素
305
12.10.3
fileset元素
306
12.10.4
patternset元素
306
12.10.5
zipfileset元素
306
第13章
Ant
API
参考
308
13.1
概述
308
13.2
org.apache.tools.ant包
309
13.2.1
AntClassLoader类
309
13.2.2
BuildEvent类
310
13.2.3
BuildException类
310
13.2.4
BuildListener接口
311
13.2.5
BuildLogger接口
312
13.2.6
DefaultLogger类
313
13.2.7
DesirableFilter类
314
13.2.8
DirectoryScanner类
314
13.2.9
FileScanner接口
316
13.2.10
IntrospectionHelper类
317
13.2.11
Location类
318
13.2.12
Main类
319
13.2.13
PathTokenizer类
319
13.2.14
Project类
319
13.2.15
ProjectHelper类
323
13.2.16
RuntimeConfigurable类
324
13.2.17
Target类
324
13.2.18
Task类
326
13.2.19
TaskAdapter类
327
13.2.20
UnknownElement类
328
13.2.21
XmlLogger类
328
13.3
小结
329
第14章
JUnit
API参考
331
14.1
junit.framework包
331
14.1.1
Assert类
331
14.1.2
Protectable接口
334
14.1.3
Test接口
335
14.1.4
TestCase类
335
14.1.5
TestListener接口
339
14.1.6
TestFailure类
339
14.1.7
TestResult类
340
14.1.8
TestSuite类
342
14.2
junit.extensions包
344
14.2.1
ActiveTestSuite类
344
14.2.2
ExceptionTestCase类
345
14.2.3
RepeatedTest类
346
14.2.4
TestDecorator类
347
14.2.5
TestSetup类
348
第15章
Cactus
API参考
350
15.1
概述
350
15.2
org.apache.cactus包
350
15.2.1
AbstractTestCase类
350
15.2.2
Cookie类
353
15.2.3
FilterTestCase类
357
15.2.4
JspTestCase类
358
15.2.5
ServiceDefinition类
359
15.2.6
ServiceEnumeration类
359
15.2.7
ServletTestCase类
359
15.2.8
ServletTestRequest类
不推荐
362
15.2.9
ServletURL类
363
15.2.10
WebRequest类
365
15.2.11
WebResponse类
367
15.2.12
WebTestResult类
368
15.3
org.apache.cactus.util包
369
15.3.1
AssertUtils类
不推荐
369
15.3.2
ClientCookie类
不推荐
370
15.4
org.apache.cactus.server包
371
15.4.1
FilterConfigWrapper类
371
15.4.2
HttpServletRequestWrapper类
372
15.4.3
PageContextWrapper类
373
15.4.4
RequestDispatcherWrapper类
373
15.4.5
ServletConfigWrapper类
373
15.4.6
ServletContextWrapper类
374
第16章
HttpUnit
API参考
375
16.1
概述
375
16.2
com.meterware.httpunit包
375
16.2.1
AuthorizationRequired-
Exception类
375
16.2.2
GetMethodWebRequest类
376
16.2.3
HTMLSegment接口
376
16.2.4
HttpException类
379
16.2.5
HttpInternalErrorException类
379
16.2.6
HttpNotFoundException类
380
16.2.7
HttpUnitOptions类
380
16.2.8
HttpUnitUtils类
381
16.2.9
IllegalRequestParameterException类
382
16.2.10
MessageBodyWebRequest类
383
16.2.11
PostMethodWebRequest类
383
16.2.12
PutMethodWebRequest类
384
16.2.13
SubmitButton类
385
16.2.14
TableCell类
385
16.2.15
WebClient类
386
16.2.16
WebConversation类
389
16.2.17
WebForm类
390
16.2.18
WebLink类
392
16.2.19
WebRequest类
393
16.2.20
WebResponse类
397
16.2.21
WebTable类
400
第17章
JUnitPerf
API参考
402
17.1
com.clarkware.junitperf包
402
17.1.1
ConstantTimer类
402
17.1.2
LoadTest类
402
17.1.3
RandomTimer类
406
17.1.4
ThreadBarrier类
406
17.1.5
ThreadedTest类
407
17.1.6
ThreadedTestGroup类
407
17.1.7
TimedTest类
408
17.1.8
Timer接口