本节书摘来自异步社区《JUnit实战(第2版)》一书中的第1章1.1节证实它能运行,作者【美】Petar Tahchiev , Felipe Leme , Vincent Massol , Gary Gregory,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第1部分 认识JUnitJUnit实战(第2版)欢迎阅读《JUnit实战(第2版)》!JUnit是一个由Kent Beck和Erich Gamma于1995年年底着手编写的框架。自此以后,JUnit框架日益普及,现在已经成为单元测试Java应用程序的事实上的标准。
本书是第2版。《JUnit实战》的第1版非常畅销,由Vincent Massol和Ted Husted于2003年编写,其内容是基于JUnit 3.x版本的。
我们涵盖了JUnit最新的版本4.6,讨论了许多第1版尚未介绍的功能。与此同时,我们关注其他一些有趣的测试代码的方法:mock objects、JUnit扩展、测试应用程序的不同层,等等。
这一部分从探索JUnit本身开始。在本书后面的章节中,我们将专注于另一些工具和方法。
第1章快速介绍了测试的概念。你需要从基础知识入手逐步深入。在本章的后半部分,我们会直接跳到代码内容,查看如何编写简单的测试、运行它并看到运行结果。
第2章介绍了JUnit最核心的内容。我们构建了一个稍大型的项目,并分析其代码。我们不仅解释了JUnit的概念、Widget和内部构成,也为你展示了编写测试用例的最佳做法,并利用构建的项目对它们进行了说明。
第3章重点介绍了测试。我们描述了各种各样的测试以及它们所适用的情况。我们还探讨了不同的平台(如开发、生产等),并展示了哪种测试和哪种情况能够在这些平台上最好地执行。
第1部分的最后一章致力于提升你的测试技巧。我们告诉你如何衡量测试覆盖面以及如何提高测试覆盖面。我们也解释了如何在编写测试之前生成可测试的代码,如何在动手编写代码之前编写测试。
第1章 Unit起步JUnit实战(第2版)Never in the field of software development was so much owed by so many to so few lines of code.
在软件开发领域中,从来没有这样的事情:少数几行代码对大量代码起着如此重要的作用。
——Martin Fowler
本章重点
探索JUnit安装JUnit编写第一个测试运行测试所有的代码都需要进行测试。
在开发期间,我们所做的第一件事是运行程序员自己的“验收测试”。我们编码、编译并运行。当我们运行时,我们就在进行测试。测试可能只是点击一个按钮,看它是否能弹出预期的菜单。然而,每天我们都要进行编码、编译、运行和测试。
当我们测试时,我们经常会发现各种问题——尤其是第一次运行时。于是,我们重新编码、编译、运行和测试。我们中的大多数人会迅速形成一种非正式的测试模式:添加一条记录、查看一条记录、编辑一条记录以及删除一条记录。手动运行诸如此类的小测试集是非常容易做到的,所以我们会不断重复这个操作。
有些程序员喜欢这类重复性的测试。在经历深入的思索和艰难的编码后,这类重复性的操作可以带来一段愉快的小憩。当我们小小的点击测试终于成功时,一股成就感便会油然升起:搞定了!我搞定了!
但有一些程序员却不喜欢重复性的工作。与其手动运行测试,他们宁愿创建一个小程序来自动运行测试。编写测试代码是一回事,而运行自动测试是另一回事。
如果你是一名编写测试代码的开发人员,那么这本书就是为你而准备的。我们将为你展示创建自动测试是多么简单、有效,甚至有趣。
如果你是一名深受测试影响的开发人员(test-infected1),那么这本书同样适合你。我们在第1部分介绍了基础知识,然后在第2、第3和第4部分继续探讨实际工作中的各种疑难杂症。
1test-infected是由Gamma和Beck创建的一个术语,参见《Test-Infected: Programmers Love Writing Tests》,Java Report, 3, 7, 37–50: 1998。
1.1 证实它能运行JUnit实战(第2版)一些开发人员认为自动测试是开发过程中非常重要的一部分。你无法证实一个组件能够运行,除非它通过了一系列全面的测试。有两名开发人员觉得这类单元测试如此重要,以至于值得为它编写一个框架。1997年,Erich Gamma和Kent Beck针对Java创建了一个简单但有效的单元测试框架,叫做JUnit。他们的工作遵循了SUnit的设计,而SUnit是Kent Beck早期为Smalltalk创建的一个框架。
NITION 框架*
个应用程序的半成品{