序言
前言
第1部分 背景知识介绍
第1章 测试驱动开发
什么是测试驱动开发?
让计算机来告诉你
一个简短的例子
小节
第2章 重构
什么是重构?
什么时候进行重构
如何重构
一些重要的重构方法
通过重构来引入模式
小节
第3章 意图导向的编程
名字
简单
要做有根据的假设
如何进行意图导向的编程
“无需注释”
小节
第2部分 工具与技术
第4章 JUnit
体系结构概览
断言
编写一个测试用例(TestCase)
运行测试
使用setUp()和tearDown()
使用TestSuite()
相互关系
测试的归属问题
一些建议
小节
第5章 JUnit的扩展(extensions)
标准扩展
使用MockObjects补充的断言
使用JUnitPerf来来测试性能与可伸缩性
Daedalos JUnit扩展
使用xmlUnit来编写基于XML的测试
Gargoyle 软件公司的JUnit扩展
第6章 与JUnit有关的工具
Jester
NoUnit
Clover
Eclipse
IDEA
第7章 模拟对象(Mock Objects)
模拟对象
例子解说
模拟对象的用途
如果能这样该有多好?
一个普通的例子
MockObjects框架
MockMaker
EasyMock
小节
第8章 以测试优先的方式开发一个GUI应用
例子
AWT机器人
蛮力测试(Brute Force)
JFCUnit
Jemmy
超瘦(Ultru-Thin)GUI
小节
第3部分 一个彻头彻尾的采用TDD开发的Java软件项目
第9章 项目描述
概述
用户描述及相关任务
第10章 电影列表
为电影制作一个容器
为电影列表创建GUI
通过GUI增加电影
回顾
第11章 可以为电影更名
支持对电影名的编辑
对电影更名的GUI
回顾
第12章 电影是唯一的
电影是唯一的
发现不唯一时的出错信息
回顾
第13章 评分(ratings)
给电影打分
在GUI中显示评分
对评分进行编辑
回顾
第14章 类别
增加一种类别
在GUI中显示类别
提供可供选择的类别
回顾
第15章 根据类别进行筛选
获得基于类别的子列表
支持一种称做ALL(所有)的类别
在GUI上添加类别选择器
处理电影类别的变更
界面修整
回顾
第16章 持续性存储(persistence)
将数据输出到平直文件中
GUI中的Save-As菜单项
GUI中的Save菜单项
从平直文件中读取数据
加载到GUI中
回顾
第17章 排序
电影比较
对电影列表进行排序
从MovieListEditor中获取排序后的列表
在GUI中增加排序操作
回顾
第18章 多重评分
多重评分
评分来源
修正后的持续性存储
在GUI中显示电影的多重评分
在GUI中添加增加评分的功能
删除单一评分域
回顾
第19章 评论
为评分附加评论
保存评论
加载评论
显示评论
增加评论
回顾
第20章 项目回顾
设计
测试代码 vs. 应用代码
测试质量
模拟对象的使用
总体评述
调试
测试清单
小节
第4部分 xUnit一族
第21章 RUBYUNIT
框架描述
范例
第22章 SUNIT
框架描述
范例
第23章 CPPUNIT
框架描述
范例
第24章 NUNIT
框架描述
范例
第25章 PYUNIT
框架描述
范例
第26章 VBUNIT
框架描述
范例
附录A 极限编程
敏捷革命
极限编程
四种变化量(The Four Variables)
价值观(Values)
实践方法(Practices)
小节
附录B 敏捷建模
与建模有关的荒诞言论
敏捷建模(AM)导论
什么是敏捷模型?
附录C 联机资源
论坛
与敏捷建模有关的信息
与极限编程有关的信息
与JUnit有关的软件
与JUnit有关的信息
各种工具
XUnit家族的其他成员
相关公司
杂类
附录D 练习答案
参考文献
^ 收 起