第1章 序言 1
1.1 自信地编码 2
1.2 什么是单元测试 3
1.3 为什么要使用单元测试 4
1.4 我需要做什么呢 5
1.5 如何进行单元测试 7
1.6 不写测试的借口 7
1.7 本书概要 12
第2章 你的首个单元测试 13
2.1 计划你的测试 14
2.2 测试一个简单的方法 15
2.3 更多的测试 20
第3章 使用JUnit编写测试 21
3.1 构建单元测试 21
3.2 JUnit的各种断言 22
3.3 JUnit框架 26
3.4 JUnit测试的组成 27
3.5 自定义JUnit断言 32
3.6 JUnit和异常 33
3.8 JUnit测试骨架 35
3.7 关于命名的更多说明 35
第4章 测试哪些内容:Right-BICEP 37
4.1 结果是否正确 38
4.2 边界条件 41
4.3 检查反向关联 42
4.4 使用其他手段来实现交叉检查 42
4.5 强制产生错误条件 43
4.6 性能特性 44
第5章 CORRECT边界条件 47
5.1 一致性 48
5.2 有序性 49
5.3 区间性 51
5.4 引用/耦合性 54
5.5 存在性 55
5.6 基数性 56
5.7 时间性 58
5.8 自己动手尝试 60
第6章 使用Mock对象 65
6.1 简单的替换 66
6.2 Mock对象 67
6.3 测试Servlet 71
6.4 EasyMock对象 74
第7章 好的测试所具有的品质 79
7.1 自动化 80
7.2 彻底的 81
7.3 可重复 83
7.4 独立的 83
7.5 专业的 84
7.6 对测试进行测试 86
第8章 在项目中进行测试 89
8.1 把测试代码放到哪 89
8.2 测试的礼貌 93
8.3 测试的频率 94
8.4 测试与遗留代码 95
8.5 测试与评审 98
第9章 设计话题 101
9.1 面向测试的设计 101
9.2 为测试而重构 103
9.3 测试类的不变性 114
9.4 测试驱动的设计 117
9.5 测试无效的参数 119
A.2 “冒烟”测试 121
附录A Gotchas 121
A.1 只要代码能工作就可以 121
A.3 “请让我的机器来运行” 122
A.4 浮点数问题 122
A.5 测试耗费的时间太多了 123
A.6 测试总是失败 123
A.7 在某些机器上测试失败 124
A.8 我的main没有被运行 125
附录B 安装JUnit 127
B.1 命令行安装 128
B.2 管用吗 129
附录C JUnit测试骨架 131
C.1 辅助类 133
C.2 基本模板 133
附录D 资源 137
D.1 网络资源 137
D.2 参考书目 139
附录E 注重实效的单元测试:总结 141
附录F 习题答案 143
索引 155