《有效的单元测试》一导读

前 言

过去10余年间,Java开发者显著地青睐开发者测试。如今,计算机科学专业的毕业生无人不知自动化单元测试及其在软件开发中的重要性。这个想法很简单——确保我们的代码能工作并且一直能工作——但是该技能需要花很大力气去学习。

编写测试、学习JUnit的测试框架,这些都不难。要真正地掌握编写自动化单元测试实践,需要花大量时间在阅读并改善测试代码上。这种持续的测试重构能够尝试用不同方式来表达意图、组织测试的不同行为、用测试构建各种用到的对象——这才是一种务实的方式,用来自我学习和培养对单元测试的感觉。
这种感觉是关于哪些是优秀的单元测试,而哪些不那么优秀。有些是绝对的真理(比如完全在重复代码内容的注释就是冗余的,应该被删除),但大多数关于单元测试的知识都取决于上下文。通常意义上的优秀在特定条件下可能却很糟糕。同样,一般认为糟糕和应当避免的想法有时却是正确的做法。
原来,找到优秀方案的最好方式就是尝试一个看似可行的方法,识别该方法的问题,然后改变该方法从而消除讨厌的部分。通过重复这个过程,不断地评估和进化,最终你会找到一个可行的方案,它闻起来没那么臭。你甚至会说那是相当优秀的方式!
考虑到这种复杂性,本书采用了一种风格和结构,那就是我们不会告诉你怎么做,也不会告诉你怎么编写单元测试。相反,我打算给你一个坚实的基础,让你知道哪些是我们希望测试表现出的属性,然后给你尽可能多的例子来培养你对测试坏味道的感觉——帮你注意到测试中的不合时宜之处。

受众

目 录

第一部分 基础
第1章 优秀测试的承诺
1.1 国情咨文:编写更好的测试
1.2 测试的价值
1.3 测试作为设计工具
1.4 小结
第2章 寻求优秀
2.1 可读的代码才是可维护的代码
2.2 结构有助于理解事物
2.3 如果测试了错误的东西就不好了
2.4 独立的测试易于单独运行
2.5 可靠的测试才是可靠的
2.6 每个行业都有其工具而测试也不例外
2.7 小结
第3章 测试替身
3.1 测试替身的威力
3.2 测试替身的类型
3.3 使用测试替身的指南
3.4 小结
第二部分 目录
第4章 可读性
4.1 基本断言
4.1.1 示例
4.1.2 该对它做点儿什么
4.1.3 小结
4.2 过度断言
4.2.1 示例
4.2.2 该对它做点儿什么
4.2.3 小结
4.3 按位断言
4.3.1 示例
4.3.2 该对它做点儿什么
4.3.3 小结
4.4 附加细节
4.4.1 示例
4.4.2 该对它做点儿什么
4.4.3 小结
4.5 人格分裂
4.5.1 示例
4.5.2 该对它做点儿什么
4.5.3 小结
4.6 逻辑分割
4.6.1 示例
4.6.2 该对它做点儿什么
4.6.3 小结
4.7 魔法数字
4.7.1 示例
4.7.2 该对它做点儿什么
4.7.3 小结
4.8 冗长安装
4.8.1 示例
4.8.2 该对它做点儿什么
4.8.3 小结
4.9 过分保护
4.9.1 示例
4.9.2 该对它做点儿什么
4.9.3 小结
4.10 总结

时间: 2024-10-09 08:49:00

《有效的单元测试》一导读的相关文章

《TCP/IP路由技术(第二卷)》一导读

前 言 TCP/IP路由技术(第二卷)自从出版了<TCP/IP路由技术(第一卷)>之后,虽然Cisco Press"CCIE职业发展系列"中增加了大量新书,而且CCIE计划本身也被扩展到多个专业领域,但IP路由协议仍然是所有准CCIE们的核心基础.因此,必须透彻地对其加以理解和掌握,否则基础不牢,大厦将倾. 我在<TCP/IP路由技术(第一卷)>的前言中曾经说过,"--随着互联网络规模和复杂性的不断增大,路由问题也随即变得庞大且错综复杂".由

《TCP/IP路由技术(第二卷)》一1.4 配置EGP

1.4 配置EGP TCP/IP路由技术(第二卷) 通过以下4个基本步骤即可完成路由器上的EGP配置. 第1步:利用命令autonomous-system指定路由器的AS. 第2步:利用命令router egp启动EGP进程并指定邻居的AS. 第3步:利用命令neighbor指定EGP邻居. 第4步:指定由EGP宣告的网络. 下面的第一个案例研究将详细解释前3个配置步骤,同时也给出了步骤4的多种实现方法. 1.4.1 案例研究:EGP末梢网关 图1-10给出了一台位于AS 65502的EGP末梢

《TCP/IP路由技术(第二卷)》一1.9 配置练习题

1.9 配置练习题 TCP/IP路由技术(第二卷) 本书附录E中提供了以下配置练习题的答案. (1)图1-14中的自治系统65531是一个核心AS,请在RTA和RTB上配置EGP,要求如下: 不要将AS内的数据链路宣告给任何外部邻居. RTA将连接在其S1接口上的网络宣告给RTB:另外,要求RTA和RTB之间不能宣告其他AS间链路. RTA和RTB向其外部邻居(除了从其他自治系统学习到的网络)宣告默认路由,而且这两个网关都不得将默认路由宣告给其内部邻居. (2)例1-26给出了图1-15中RTC

《TCP/IP路由技术(第二卷)》一1.1 EGP的起源

1.1 EGP的起源 TCP/IP路由技术(第二卷)在20世纪80年代早期,构成ARPANET(现代互联网的前身)的路由器(网关)设备上都运行了一种距离向量路由协议--GGP(Gateway-to-Gateway Protocol,网关到网关协议).但是随着ARPANET的不断发展,与当今许多负责管理日益增长的互联网络的网管员一样,ARPANET的架构师们也预见到了相同的问题:现在运行的路由协议没有很好的扩展性. Eric Rosen在RFC 827中阐述了以下扩展性问题. 由于所有的网关都要知

《TCP/IP路由技术(第二卷)》一1.6 附 注

1.6 附 注 TCP/IP路由技术(第二卷)1Eric Rosen,"RFC 827:外部网关协议(EGP)". 2Linda J. Seamonson和Eric C. Rosen"RFC 888:'末梢'外部网关协议". 3D.L. Mills,"RFC 904:外部网关协议正式规范". 4J. Rekhter,"RFC 1092:EGP和新NSFNET骨干网的策略路由".

《TCP/IP路由技术(第二卷)》一1.5 检测与排除EGP故障

1.5 检测与排除EGP故障 TCP/IP路由技术(第二卷)在1.3节中已经解释了EGP为何无法应用于复杂的AS间拓扑结构,而强制性的简单拓扑结构带来了一个意外的好处,那就是EGP的故障检测和排除变得非常简单. 与其他路由协议一样,检测与排除EGP故障的第一步工作就是查看路由表.如果所请求的路由缺失或路由表中存在一条非期望路由,通过查看路由表就可以检测到问题的根源.由于EGP的度量值几乎没有任何意义,因而与其他路由协议相比,利用路由表进行EGP故障的检测和排除工作可以得到大大简化. 需要注意的是

《TCP/IP路由技术(第二卷)》一第1章 外部网关协议

第1章 外部网关协议 TCP/IP路由技术(第二卷)本章将主要讨论以下主题. • EGP的起源:本节将讨论在RFC 827(1982)中定义的外部网关协议的发展历史. • EGP的操作:本节将讨论EGP的基本操作机制,重点是EGP拓扑结构.EGP功能及EGP消息格式. • EGP的不足:本节将探讨为什么EGP不再是一种可行的外部网关协议解决方案. • 配置EGP:本节将通过4个独立的案例研究--EGP末梢网关.EGP核心网关.间接邻居和默认路由,来说明不同类型的EGP配置方法. • 检测和排除E

《TCP/IP路由技术(第二卷)》一1.7 展 望

1.7 展 望 TCP/IP路由技术(第二卷)本章不但说明了AS间路由协议的发明驱动力,也解释了EGP难以胜任该角色的原因.第2章将简要描述EGP的替代协议--边界网关协议及其操作.表1-10汇总了本章用到的所有命令.

《TCP/IP路由技术(第一卷)(第二版)》一导读

前 言 TCP/IP路由技术(第一卷)(第二版)路由技术即使在最小的数据通信网络中也是基本的要素.在某种程度上,路由技术和路由器的配置是相当简单的.但是,当网络的规模越来越大,并且越来越复杂的时候,路由选择问题就变得比较突出和难以控制了.或许,有点不恰当地说,作为一名网络系统顾问,我应该感谢当前出现的大规模路由技术难题,这些问题给了我谋生的手段.假设没有它们,"你何以为生?"这句习语可能就会不幸地成为我每天生活词汇的一部分了. Cisco认证互联网专家(CCIE)在大型网络的设计.故障

《TCP/IP路由技术(第一卷)(第二版)》一第1章 TCP/IP回顾1.1 TCP/IP协议层

第1章 TCP/IP回顾 TCP/IP路由技术(第一卷)(第二版)本章包括以下主题: TCP/IP协议层: IP包头(IP Packet Header): IPv4地址: 地址解析协议(ARP): Internet控制消息协议(ICMP): 主机到主机层. 考虑到这本书的书名是<TCP/IP路由技术>,有必要从回顾TCP/IP的基本知识开始讲起,然后再讲述如何进行TCP/IP路由选择.如果读者正在准备Cisco认证互连网专家(Cisco Certified Internetwork Exper