具体描述
本书主要介绍了在Java软件开发中使用JUnit进行测试的原则、技巧与实践,深入阐述如何编写自动测试,把一段代码隔离开来测试有什么好处,如何判断何时需要进行整合测试,并对如何测试完整的J2EE应用进行了极具价值的讨论。本书富含开发实践当中的真实案例,以专家手笔讨论了实践中的测试技术,主要内容包括:用mock objects进行隔离测试;用Cactus进行容器内测试;用Ant和Maven进行自动构建;在Eclipse内进行测试;对Java应用程序、Filter、Servlet、EJB、JSP、数据库应用程序、Taglib等进行单元测试。本书适合于在Java平台下进行各类软件开发的开发人员、测试人员、单元测试研习者以及编程爱好者阅读和学习,具有极高的参考价值。
作者简介
目录信息
前言
致谢
关于本书
关于作者
关于书名
关于封面
第1部分 JUnit精粹
1 JUnit起步
1.1 证实它能运作
1.2 从头开始
1.3 理解单元测试框架
1.4 安装JUnit
1.5 用JUnit测试
1.6 小结
2 探索JUnit
2.1 探索JUnit核心
2.2 用test runner来运行测试
2.2.1 选择test runner
2.2.2 定义你自己的test runner
2.3 用TestSuite来组合测试
2.3.1 运行自动suite
2.3.2 编写你自己的test suite
2.4 用TestResult来收集参数
2.5 用TestListener来观察结果
2.6 用TestCase来工作
2.6.1 用fixture来管理资源
2.6.2 创建单元测试方法
2.7 创建TestCalculator全过程
2.7.1 创建TestSuite
2.7.2 创建TestResult
2.7.3 执行测试方法
2.7.4 复习完整JUnit生命周期
2.8 小结
3 JUnit实例
3.1 引入controller组件
3.1.1 设计接口
3.1.2 实现基类
3.2 让我们来测试吧
3.2.1 测试DefaultController
3.2.2 增加处理器
3.2.3 处理请求
3.2.4 改进testProcessRequest
3.3 测试异常处理
3.3.1 模拟异常条件
3.3.2 测试异常
3.4 建立测试项目
3.5 小结
4 探索软件测试
4.1 单元测试的必要性
4.1.1 带来更大的测试范围
4.1.2 带来团队协作的可能
4.1.3 防止衰退,减少调试
4.1.4 使得重构可行
4.1.5 改进实现设计
4.1.6 当作开发者文档来用
4.1.7 非常有趣
4.2 不同种类的测试
4.2.1 软件测试的4种类型
4.2.2 单元测试的3种类型
……
5 JUnit自动化
第2部分 测试策略
6 用stub进行粗粒度测试
7 用mock objects 进行孤立测试
8 使用Cactus进行容器内测试
第3部分 测试组件
9 对servlet和filter 进行单元测试
10 对JSP和taglib 进行单元测试
11 对数据库应用程序进行单元测试
12 对EJB进行单元测试
A 源代码说明
B Eclipse快速上手
参考文献
索引
· · · · · · (收起)
读后感
JUnit4加入了不少东西的,应该都在第二版里面提到 此外,第二版还介绍了如何与Maven和Hudson集成等等 见:http://www.manning.com/tahchiev/
junit 本来很简单,就是一个帮助你进行单元测试的框架。但要写好出好的测试用例,却不容易,要实践测试驱动开发,在开发的时候就考虑到单元测试,那就更不容易了。
前言:测试不是最终的目的。 为什么要单元测试: 1 能为我们带来重构的勇气。从而实现快速迭代,渐进式开发。 2 降低对调试的需求。 3 改进实现设计。 如何孤立的测试每个部分: 1 stub策略允许你孤立的测试粗粒度的代码部分。写代码模拟需求环境或者还没有写完的真实代...
本来想好好学习研究JUnit的,可有点被书名欺骗的感觉,讲的东西太多了,所以很难深入,不如多讲讲JUnit和单元测试的东西,一本书能让人好好把握一个点就不容易了,泛泛而谈许多不太好。
JUnit4加入了不少东西的,应该都在第二版里面提到 此外,第二版还介绍了如何与Maven和Hudson集成等等 见:http://www.manning.com/tahchiev/
用户评价
说实话,这本书的英文原版我断断续续看过一些章节,但总觉得在一些特定的语言习惯和文化背景下理解起来略有隔阂。所以,当看到这个中文译本时,我立刻入手了。翻译质量相当高,用词准确且流畅,完全没有那种生硬的“机器翻译腔”,读起来非常顺畅自然,保持了原作者那种严谨又不失幽默的笔调。尤其是一些技术术语的本地化处理,既保留了其国际通用性,又照顾到了中文读者的阅读习惯,做得非常到位。这使得我能够更专注于理解测试背后的设计思想,而不是纠结于那些拗口的句子结构。对我这个习惯用中文环境进行技术交流的人来说,拥有一个高质量的中文版本,无疑是提升学习效率的巨大助推器,它让原本有些晦涩的知识,变得触手可及、易于吸收。
这套书的封面设计,老实说,初看之下确实有些朴实得过分了,让人不禁联想到那些早期的技术手册,缺乏现代感。但一旦翻开内页,那种扎实的学术气息立刻扑面而来,文字排版清晰,间距适中,即便长时间阅读也不会感到眼睛疲劳。我记得第一次拿到手的时候,是冲着某个特定章节去的,但很快就被作者那种抽丝剥茧的讲解方式所吸引。他似乎总能将那些初看之下令人望而生畏的概念,通过一系列精妙的类比和逐步深入的案例,变得平易近人。特别是对于那些已经工作了一段时间,但基础知识有些模糊的开发者来说,这本书就像是一剂强心针,它不是那种只罗列API和命令的“字典式”参考书,而是真正致力于教会你“为什么”要这么做,以及“如何”在复杂项目中优雅地应用这些测试原则。阅读的过程中,我感觉自己不是在被动接受知识,而是在进行一场与资深专家的深度对话,他总能预判到我可能产生的疑问,并提前给出最合理的解释。
我必须承认,刚开始接触这本书时,我的技术栈和作者默认的上下文环境有一些出入,这让我花了不少时间去适应。不同于一些直接将所有解决方案都绑定在最新版本框架上的书籍,这本书的处理方式更加老道和成熟。它会清晰地标出哪些是核心概念,哪些是特定版本下的实现细节。更重要的是,它教会了我如何去“辨别”何时应该使用某种高级特性,以及何时应该回归到最简单、最健壮的实现方式。书中对“模拟(Mocking)”和“桩(Stubbing)”之间微妙区别的解析,让我茅塞顿开,以前一直混为一谈的概念,现在清晰地分界了。这种对技术哲学层面的探讨,让这本书的保质期大大延长,即使框架不断迭代,其核心思想依然闪耀着光芒,是那种值得放在案头随时翻阅的“圣经”级别读物。
这本书的结构安排非常有逻辑性,它不是按照章节顺序线性推进就能完全吸收的。我发现,只有当我将前几章关于“为什么需要隔离”和“依赖注入基础”的内容吃透后,后续关于“参数化测试”和“集成测试策略”的章节才能真正发挥作用。它对测试套件的组织和维护的论述,更是充满了实战智慧。我特别欣赏作者在描述复杂场景时,总是会先画出清晰的架构图或流程图,然后再辅以代码示例。这种可视化教学的方法,极大地降低了理解复杂测试层次结构的难度。对我个人而言,这本书带来的最大转变是心态上的——从过去认为“测试只是为了通过验收”的心态,转变为“测试是重构的保险丝”的理念,这彻底改变了我对软件质量的投入程度和优先级排序。
坦白讲,我对市面上所有关于测试框架的书都抱持着一种审慎的态度,因为很多都是蜻蜓点水,停留在“Hello World”的层面。然而,这本书的深度和广度超出了我的预期。它并没有仅仅停留在教你如何编写一个简单的单元测试,而是深入到了面向对象设计原则在测试驱动开发(TDD)中的实际应用。书中对“可测试性”这个核心概念的阐述,简直是点睛之笔,它让我重新审视了自己过去的代码结构——原来很多代码写起来顺手,但测试起来却像是在攀登珠穆朗玛峰,症结往往在于设计之初就埋下的“耦合陷阱”。作者用了大量的篇幅来讨论如何重构那些“不适合测试”的代码,这对于提升我日常编码的质量起到了立竿见影的效果。阅读这本书,感觉就像是有人拿着一把高精度手术刀,帮我清理了代码库中那些看不见的“技术债务”,实在是一次痛并快乐着的学习体验。
组件测试没看
感觉不错 书里面一个集成单元测试的概念有点意思,不过推敲下觉得有违UT的原则。
unit testing
感觉不错 书里面一个集成单元测试的概念有点意思,不过推敲下觉得有违UT的原则。
07年6月