书籍详情
JUnit Recipes中文版
作者:(加)雷恩斯伯格(Rainsberger、J.B.)、(加)斯特灵(Stirling.S.) 著;陈浩、王耀伟、李笑 译
出版社:电子工业出版社
出版时间:2006-09-01
ISBN:9787121030994
定价:¥69.00
购买这本书可以去
内容简介
世界顶级技术大师,《敏捷软件开发:原则、模式与实践》作者Robert C.Martin鼎力推荐。“没有任何一本书能像他的这本书一样,在一本书内收录这么多关于JUnit和单元测试的智慧、知识和实践建议……我很确信这本书将成为我书架上最容易拿到的几本书之一,这样我就可以在急需的时候迅速拜读其中的内容。”“此书必学!此书将你引至通向专业技能的大道上。”——Brian Marick,The Craft of Software Tesing作者“……强有力地表述了测试能够提高生产力和软件质量的观点。”Michael Rabbior,IBM“作者的阐述方法是:我知道那个,我也做过那个,我的经验是不要那么做。”——Vladimir Ritz Bossicard,JUnit开发团队成员“……本书是本‘模式参考’——系多年积累而来……”——Eric Armstrong,Jbuilder 2 Bible作者/Sun Computing顾问本书主要介绍了在Java开发中使用JUnit进行单元测试的各种方法、原则、技巧与实践。本书出自开发一线专家之手,本着实用的原则,涵盖各类Java开发中应用JUnit的实用技巧,内容丰富、全面深入;无论对于需要应用JUnit进行单元测试的一线Java开发人员,还是JUnit入门、进阶者,本书都是一本不可多得的实用指南。这本书介绍了大量的JUnit实用测试技巧,从如何命名测试类到测试复杂的J2EE应用(包括servlets, JSP, EJB和JMS组件等),它告诉您如何在不同情况下优化自己的代码。每个测试技巧都依照固定的格式进行介绍:首先提出问题及其背景知识,然后探讨具体的解决方案。因此,本书的技巧实际上被编写成了一百多个相互独立的短文,每个问题都面向一个特定的JUnit使用问题,您可以在遇到具体问题的时候,随时查阅它。
作者简介
本书提供作译者介绍J.B.Rainsberger既是程序员,又是一名顾问,并从2001年起担任JUnit社区的领导人。他著名的JUnit在线指南:A Starter Gude,每个月都以数千计的JUnit使用者阅读。Joe目前生活在加拿大多伦多。
目录
前言
序言
致谢
关于此书
关于封面插图
第1部分基石
第l章基础概念
1.1什么是程序员测试
1.1.1对象测试的目的
1.1.2 “对象测试”的节奏
1.1.3单元测试的框架
1.1.4进入JUnit
1.1.5理解测试驱动开发
1.2开始使用JUnit
1.2.1下载和安装Juni
1.2.2编写一个简单的测试
1.2.3理解TestCase类
1.2.4失败信息
1.2.5 JUnit怎样表示一个失败的断言
1.2.6失败和错误的区别
1.3一些好的实践
1.3.1测试和测试类的命名约定
1.3.2测试的是行为,而不是方法
1.4总结
第2章码元测试
2.1测试你的equals方法
2.2测试一个没有返回值的方法
2.3测试构造函数
2.4测试获取器
2.5测试设置器
2.6测试接口
2.7测试JavaBean
2.8测试是否抛出正确的异常
2.9 容器自己进行比较
2.10测试一个巨型对象的相等性
2.1 1测试一个拥有其他对象的对象
第3章组织和编译JUnit测试
3.1将测试类与产品代码放在同一个包中
3.2为测试代码创建独立的源代码树
3.3区分测试包和产品包
3.4抽取一个测试模块
3.5提取一个测试装置层次结构
3.6引入一个基本测试用例
3.7将对特殊用例的测试放到一个单独的测试装置里
3.8从命令行编译测试代码
3.9使用Ant编译测试代码
3.10使用Eclipse编译测试代码
第4章管理Test Suites
4.1 ]~JUnit创建Test Suite
4.2归纳专用的TestCase
4.3收集一个package中所有的测试
4.4收集系统中的所有测试
4.5为测试扫描文件系统
4.6分离不同的Test Suife
4.7控制某些测试的顺序
4.8创建数据驱动的Test Suite
4.9使用XML定义TestSuite
第5章使用测试数据进行测试
5.1使用Java的系统属性
5.2使用环境变量
5.3使用内联数据文件
5.4使用属性文件
5.5使用ResourceBundle API
5.6使用基于文件的测试数据仓库
5.7使用XML描述测试数据
5.8使用Ant的<sql>任务来操作数据库
5.9使用JUnitPP
5.10为整个Test Suite建立设置实体
5.11为多个测试执行单次环境设置
5.12使用DbUnit
第6章运行JUnit测试
6.1运行时看见测试的名字
6.2在用基于文本的测试运行器时,怎样观察每个被执行的测试的名字
6.3执行单个的测试
6.4在单独的JVM中执行每个测试
6.5在每个测试前重新装载类
6.6略过一个测试
第7章汇报JUnit结果
7.1使用带日志功能的基础测试类
7.2使用Log4Unit
7.3用Ant获取纯文本的结果
7.4使用Ant的<iunitreport>任务将结果输出为HTML格式
7.5使用XSLT白定义qunit>XML报告
7.6拓展Ant的Junit结果格式
7.7实现TestListener拓展TestRunner
7.8报告断言的总数
第8章为JUnit排除疑难
8.1 JUnit无法找到你的测试
8.2 JUnit不执行你自定义的Test Suite
8.3 JUnit没有设置你的测试实体
8.4覆盖runTest(、)方法后测试建立失败
8.5第一个断言失败后测试停止了
8.6 图形化的Test Runner没有正确地装载你的类
8.7当测试类使用JAXP的时候JUnit失败了
8.8当指向一个EJB引用时JUnit失败
第2部分测试J2EE
第9章测试与XML
9.1验证文档中元素的顺序
9.2忽略XML文档中元素间的顺序
9.3在XML文档中忽略特定种类的差异
9.4从XMLUnit中获得更详细的错误消息
9.5测试静态Web页面的内容
9.6单独测试XSL样式表
9.7在测试中验证xML文档
第lO章测试与JDBC
10.1测试从ResultSet创建domain object
10.2验证你的SQL语句
10.3测试你的数据库
10.4确定测试释放了JDBC资源
10.5核实你的产品代码释放了JDBC资源
10.6在你的测试功能中管理外部数据
10.7管理测试数据库中的测试数据
10.8测试部署schema对象时的权限
10.9脱离数据库来测试legacy JDBC代码
10.10联合数据库测试遗留的JDBC代码
10.1 1联合DbUnit使用schema-qualified的表
10.12测试存储过程
第11章测试EJB
11.1 脱离容器测试一个session bean的方法
11.2测试一个遗留的session bean
11.3在实际的容器中测试session bean
11.4测试CMP entity bean
11.5在容器外测试CMP meta data
11.6测试BMPentity bean
11.7在容器中测试message-driven bean
11.8在容器外测试一个message-driven bean
11.9测试遗留的message-driven bean
11.10脱离消息服务器测试一个JMS消息使用者
11.11测试JMS消息的处理
11.12测试一个JMS消息生成器
11.13测试你的JNDI目录中的内容
第12章测试web组件
12.1脱离容器测试会话数据的更新
12.2测试HTTP session数据对象的更新
12.3测试解析JSP
12.4测试对Velocity模板的解析
12.5测试一个JSP tag handler
12.6测试你的JSP标签库的部署
12.7测试servlet的初始化
12.8测试ServletContext
12.9测试对request的处理
12.10脱离服务器来验证网页内容
12.1 1验证表单属性
12.12校验传递到页面模板的数据
12.13测试web资源过滤器
第13章测试J2EE应用
13.1测试页面流
13.2在Struts应用中测试导航规则
13.3测试你的网站以寻找失效的链接
13.4测试web资源的安全性
13.5测试EJB资源的安全性
13.6测试容器管理的事务处理
第3部分其他JUnit技术
第14章测试设计模式
14.1测试一个Observer(Event Listener)
14.2测试可观测的事件源
14.3测试一个Singleton
14.3测试一个Singleton的客户端
14.5测试一个对象工厂
14.6测试一个Template方法的实现
第15章GSBase
15.1用EventCather检查事件源
15.2测试序列化
15.3测试克隆对象
15.4用“appears equal'’来比较JavaBean
第16章JUnit-addons
16.1测试你的类的compareTo()方法
16.2从档案文件里自动收集测试
16.3用PropertyManager来组织测试数据
16.4管理共享的测试资源
16.5保证你的共享测试组件会把自己卸掉
16.6在执行每个测试时报告其名称
第17章补遗
17.1在测试问清理文件系统
17.2不依赖文件系统的情况下测试基于文件的应用.
17.3检验你的测试用例类的语法
17.4提取定制的断言
17.5测试一个无返回值的继承方法
17.6如果你必须测试一个private方法
附录A完整方案
A.1用XML定义一个测试
A.2覆盖runTest()的参数化测试用例
A.3忽略XML文档中的元素次序
A.4隔离测试一个XSL样式表
A.5使你的测试中的XML文档生效
A.6基于方面的通用Spy
A.7测试一个BMP实体bean
附录B测试的文章
B.1简单得不能拆分
B.2奇特性与传递性
B.3隔离高开销的测试
B.4仿制对象概览
附录C阅读清单
参考文献
索引
序言
致谢
关于此书
关于封面插图
第1部分基石
第l章基础概念
1.1什么是程序员测试
1.1.1对象测试的目的
1.1.2 “对象测试”的节奏
1.1.3单元测试的框架
1.1.4进入JUnit
1.1.5理解测试驱动开发
1.2开始使用JUnit
1.2.1下载和安装Juni
1.2.2编写一个简单的测试
1.2.3理解TestCase类
1.2.4失败信息
1.2.5 JUnit怎样表示一个失败的断言
1.2.6失败和错误的区别
1.3一些好的实践
1.3.1测试和测试类的命名约定
1.3.2测试的是行为,而不是方法
1.4总结
第2章码元测试
2.1测试你的equals方法
2.2测试一个没有返回值的方法
2.3测试构造函数
2.4测试获取器
2.5测试设置器
2.6测试接口
2.7测试JavaBean
2.8测试是否抛出正确的异常
2.9 容器自己进行比较
2.10测试一个巨型对象的相等性
2.1 1测试一个拥有其他对象的对象
第3章组织和编译JUnit测试
3.1将测试类与产品代码放在同一个包中
3.2为测试代码创建独立的源代码树
3.3区分测试包和产品包
3.4抽取一个测试模块
3.5提取一个测试装置层次结构
3.6引入一个基本测试用例
3.7将对特殊用例的测试放到一个单独的测试装置里
3.8从命令行编译测试代码
3.9使用Ant编译测试代码
3.10使用Eclipse编译测试代码
第4章管理Test Suites
4.1 ]~JUnit创建Test Suite
4.2归纳专用的TestCase
4.3收集一个package中所有的测试
4.4收集系统中的所有测试
4.5为测试扫描文件系统
4.6分离不同的Test Suife
4.7控制某些测试的顺序
4.8创建数据驱动的Test Suite
4.9使用XML定义TestSuite
第5章使用测试数据进行测试
5.1使用Java的系统属性
5.2使用环境变量
5.3使用内联数据文件
5.4使用属性文件
5.5使用ResourceBundle API
5.6使用基于文件的测试数据仓库
5.7使用XML描述测试数据
5.8使用Ant的<sql>任务来操作数据库
5.9使用JUnitPP
5.10为整个Test Suite建立设置实体
5.11为多个测试执行单次环境设置
5.12使用DbUnit
第6章运行JUnit测试
6.1运行时看见测试的名字
6.2在用基于文本的测试运行器时,怎样观察每个被执行的测试的名字
6.3执行单个的测试
6.4在单独的JVM中执行每个测试
6.5在每个测试前重新装载类
6.6略过一个测试
第7章汇报JUnit结果
7.1使用带日志功能的基础测试类
7.2使用Log4Unit
7.3用Ant获取纯文本的结果
7.4使用Ant的<iunitreport>任务将结果输出为HTML格式
7.5使用XSLT白定义qunit>XML报告
7.6拓展Ant的Junit结果格式
7.7实现TestListener拓展TestRunner
7.8报告断言的总数
第8章为JUnit排除疑难
8.1 JUnit无法找到你的测试
8.2 JUnit不执行你自定义的Test Suite
8.3 JUnit没有设置你的测试实体
8.4覆盖runTest(、)方法后测试建立失败
8.5第一个断言失败后测试停止了
8.6 图形化的Test Runner没有正确地装载你的类
8.7当测试类使用JAXP的时候JUnit失败了
8.8当指向一个EJB引用时JUnit失败
第2部分测试J2EE
第9章测试与XML
9.1验证文档中元素的顺序
9.2忽略XML文档中元素间的顺序
9.3在XML文档中忽略特定种类的差异
9.4从XMLUnit中获得更详细的错误消息
9.5测试静态Web页面的内容
9.6单独测试XSL样式表
9.7在测试中验证xML文档
第lO章测试与JDBC
10.1测试从ResultSet创建domain object
10.2验证你的SQL语句
10.3测试你的数据库
10.4确定测试释放了JDBC资源
10.5核实你的产品代码释放了JDBC资源
10.6在你的测试功能中管理外部数据
10.7管理测试数据库中的测试数据
10.8测试部署schema对象时的权限
10.9脱离数据库来测试legacy JDBC代码
10.10联合数据库测试遗留的JDBC代码
10.1 1联合DbUnit使用schema-qualified的表
10.12测试存储过程
第11章测试EJB
11.1 脱离容器测试一个session bean的方法
11.2测试一个遗留的session bean
11.3在实际的容器中测试session bean
11.4测试CMP entity bean
11.5在容器外测试CMP meta data
11.6测试BMPentity bean
11.7在容器中测试message-driven bean
11.8在容器外测试一个message-driven bean
11.9测试遗留的message-driven bean
11.10脱离消息服务器测试一个JMS消息使用者
11.11测试JMS消息的处理
11.12测试一个JMS消息生成器
11.13测试你的JNDI目录中的内容
第12章测试web组件
12.1脱离容器测试会话数据的更新
12.2测试HTTP session数据对象的更新
12.3测试解析JSP
12.4测试对Velocity模板的解析
12.5测试一个JSP tag handler
12.6测试你的JSP标签库的部署
12.7测试servlet的初始化
12.8测试ServletContext
12.9测试对request的处理
12.10脱离服务器来验证网页内容
12.1 1验证表单属性
12.12校验传递到页面模板的数据
12.13测试web资源过滤器
第13章测试J2EE应用
13.1测试页面流
13.2在Struts应用中测试导航规则
13.3测试你的网站以寻找失效的链接
13.4测试web资源的安全性
13.5测试EJB资源的安全性
13.6测试容器管理的事务处理
第3部分其他JUnit技术
第14章测试设计模式
14.1测试一个Observer(Event Listener)
14.2测试可观测的事件源
14.3测试一个Singleton
14.3测试一个Singleton的客户端
14.5测试一个对象工厂
14.6测试一个Template方法的实现
第15章GSBase
15.1用EventCather检查事件源
15.2测试序列化
15.3测试克隆对象
15.4用“appears equal'’来比较JavaBean
第16章JUnit-addons
16.1测试你的类的compareTo()方法
16.2从档案文件里自动收集测试
16.3用PropertyManager来组织测试数据
16.4管理共享的测试资源
16.5保证你的共享测试组件会把自己卸掉
16.6在执行每个测试时报告其名称
第17章补遗
17.1在测试问清理文件系统
17.2不依赖文件系统的情况下测试基于文件的应用.
17.3检验你的测试用例类的语法
17.4提取定制的断言
17.5测试一个无返回值的继承方法
17.6如果你必须测试一个private方法
附录A完整方案
A.1用XML定义一个测试
A.2覆盖runTest()的参数化测试用例
A.3忽略XML文档中的元素次序
A.4隔离测试一个XSL样式表
A.5使你的测试中的XML文档生效
A.6基于方面的通用Spy
A.7测试一个BMP实体bean
附录B测试的文章
B.1简单得不能拆分
B.2奇特性与传递性
B.3隔离高开销的测试
B.4仿制对象概览
附录C阅读清单
参考文献
索引
猜您喜欢