单元测试之道Java版——使用Junit
基本信息
编辑推荐
第14届震撼大奖(Jolt Award)、生产力大奖(Productivity Award)获奖作品!!经典名作《程序员修炼之道(The Pragmatic Programmers)》前传!!
程序员修炼三部曲:
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。
·第一部曲:版本控制之道——使用VCS
·第二部曲:单元测试之道C#版——使用NUnit
·第三部曲:项目自动化之道——如何建构、部署、监控Java应用
注重实效的程序员都会用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试(Unit Testing)”。
为了测试一座桥梁,不会只有睛朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应该能够做得比这更好。
实时的单元测试会令开发过程更加简单。它能够让没计更优化,同时大大减少调试代码所花费的时间。
从这本书中,您能够学到:
·编写更好,更快,并且bug更少的代码。
·找到bug的隐身之外,并且学会如何修正这些bug。
·在不使用整个项目的前提下,就可以测试一小段代码。
·学会如何使用JUnit来简化测试代码。
·如何在开发小组中展开高效的测试。
本书将借助面向Java的免费程序库JUnit来对单元测试进行描述:这些技术同样也适用于其它语言和框架(本丛书还有一本针对Java版本的姐妹书籍《单元测试之道C#版——便用NUnitr》)。
内容简介回到顶部↑
[font color="#ff6600"] 第14届震撼大奖(jolt award)、生产力大奖(productivity award)获奖作品!!
经典名作《程序员修炼之道(the pragmatic programmers)》前传!![/font]
《程序员修炼三部曲》是一套由四本小册子组成的丛书,旨在帮助解决程序员在日常工作中遇到的一些具体问题和需要,覆盖了对于现代软件开发非常重要的基础性知识。这套丛书不仅展现了注重实效的实际技巧、工具使用,也贯穿了作者们在其名作《程序员修炼之道:从小工到专家》中所坚持的开发哲学。而所有这些,都是帮助开发人员和开发团队进行正常开发,并带来高开发效率的利器。
《单元测试之道java版——使用junit》是本丛书的第二本(本书还有c#版本《单元测试之道c#版——使用nunit》),阐述使用自由公开的junit程序库以java语言进行单元测试,其内容也广泛适用于其他语言和框架程序库。本书主要内容包括:如何更高效地撰写bug更少的代码;如何发现bug的藏身之处以及如何清除bug;如何测试代码片断而不用牵连整个项目;如何利用junit简化测试代码;如何在团队中高效地进行测试,等等。 本书主要适用于具有一定编码和设计经验,但是对单元测试并不是很有经验的java程序员。
经典名作《程序员修炼之道(the pragmatic programmers)》前传!![/font]
《程序员修炼三部曲》是一套由四本小册子组成的丛书,旨在帮助解决程序员在日常工作中遇到的一些具体问题和需要,覆盖了对于现代软件开发非常重要的基础性知识。这套丛书不仅展现了注重实效的实际技巧、工具使用,也贯穿了作者们在其名作《程序员修炼之道:从小工到专家》中所坚持的开发哲学。而所有这些,都是帮助开发人员和开发团队进行正常开发,并带来高开发效率的利器。
《单元测试之道java版——使用junit》是本丛书的第二本(本书还有c#版本《单元测试之道c#版——使用nunit》),阐述使用自由公开的junit程序库以java语言进行单元测试,其内容也广泛适用于其他语言和框架程序库。本书主要内容包括:如何更高效地撰写bug更少的代码;如何发现bug的藏身之处以及如何清除bug;如何测试代码片断而不用牵连整个项目;如何利用junit简化测试代码;如何在团队中高效地进行测试,等等。 本书主要适用于具有一定编码和设计经验,但是对单元测试并不是很有经验的java程序员。
作译者回到顶部↑
本书提供作译者介绍
Andrew Hunt和David Thomas是Pragmatic Programmers的合伙人。他们不但为客户开发复杂的软件系统,而且为开发者和项目经理提供具有实务的各种资源。他们的第一本书《程序员修炼之道——从小工到专家》(The Pragmatic Programmer:From jouneyman to master)是面向技术和实践的畅销书籍,旨在让编码过程更加高效和有趣。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
关于程序员修炼三部曲 xi
前言 xiii
第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
前言 xiii
第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
译者序回到顶部↑
随着敏捷开发方法的风行,单元测试的思想也在遍地开花。越来越多的开发人员和公司开始学习和接受这种思想,并且在日常的开发工作中进行一些尝试。但是在尝试中,人们却遇到了不少问题和障碍。比如,如何将单元测试的思想传播给小组中的每一位成员,并让他们心悦诚服地接受;如何坚持这种边写边测的做法并最终养成一种习惯;如何进行高效的单元测试,而不是把时间无意义地浪费在对getter、setter的测试之上。
在UT中,Dave和Andy为我们揭开了这层层面纱,游刃有余地为我们展现单元测试的世界。尤其难能可贵的是,作者并没有采用列举教条的方式来说教,而是以一种与朋友对话谈心的方式来说服你,进而从良师益友的角度来教导你,最后再很有导师风范地给你指明一些设计层次上的问题;最终让你充满自信,做到对代码胸有丘壑。我相信,本书将不仅仅是学习单元测试的starter kit,还将会成为你工作中常伴身边的良师益友。
对于每个在单元测试上探索和工作的读者,本书希望能够帮助你们少跌几次跤,少碰几次壁,尽快踏上单元测试的康庄大道。这也是作者和我们的愿望。
本书由我和陶文两人合译。陶文的文笔技术都很不错,与他合作是一段美妙的经历。本书编辑方舟、陈元玉付出了辛勤的工作,为中文版增色不少。力求体现原书的思想精髓,使作者的睿智之言不因语言转化而略失光彩,这是我们最大的心愿。同时,也希望读者阅读过程中能够提出宝贵意见,帮助我们不断提高和改进译本。
在此,我要感谢周筠老师、陈英老师、方舟、陈元玉和我的爱人!
在UT中,Dave和Andy为我们揭开了这层层面纱,游刃有余地为我们展现单元测试的世界。尤其难能可贵的是,作者并没有采用列举教条的方式来说教,而是以一种与朋友对话谈心的方式来说服你,进而从良师益友的角度来教导你,最后再很有导师风范地给你指明一些设计层次上的问题;最终让你充满自信,做到对代码胸有丘壑。我相信,本书将不仅仅是学习单元测试的starter kit,还将会成为你工作中常伴身边的良师益友。
对于每个在单元测试上探索和工作的读者,本书希望能够帮助你们少跌几次跤,少碰几次壁,尽快踏上单元测试的康庄大道。这也是作者和我们的愿望。
本书由我和陶文两人合译。陶文的文笔技术都很不错,与他合作是一段美妙的经历。本书编辑方舟、陈元玉付出了辛勤的工作,为中文版增色不少。力求体现原书的思想精髓,使作者的睿智之言不因语言转化而略失光彩,这是我们最大的心愿。同时,也希望读者阅读过程中能够提出宝贵意见,帮助我们不断提高和改进译本。
在此,我要感谢周筠老师、陈英老师、方舟、陈元玉和我的爱人!
前言回到顶部↑
欢迎来到单元测试的世界。我们希望这本书能成为你和你的团队非常有价值的资源。你可以告诉我们它给你带来的帮助,或者我们需要做哪些改进,也可以通过访问我们网站 中为《Pragmatic Unit Testing(单元测试之道)》专门开设的网页,并点击“FeedBack”来给我们提供反馈。
反馈能使这些书变得更加优秀,从而使开发者本身甚至整个项目都变得更加优秀。注重实效的(Pragmatic)程序员几乎都是使用这种来自现实的反馈(如单元测试)来优化代码,调整设计。
是什么让我们对单元测试如此重视呢?我们都明白,对一个程序员而言,单元测试是非常重要的,因为它提供了你所需要的反馈。试想,如果没有单元测试的话,你可能就像在一个yellow legal pad 上写程序,只能做最好的祈祷来盼望它能够正常运行。
这当然不是个可行的做法。
对此,本书可以给你提供帮助,它主要针对的读者是那些具有一定编码和设计经验,但是对单元测试并不是很有经验的Java程序员。
虽然我们是使用Java来编写书中的代码,使用的是JUnit框架;但是就单元测试中的这些概念而言,无论你用的是什么语言,比如C++、Fortran、Ruby、Smalltalk或者VisualBasic都是一样的;而且迄今为止,有超过60种不同的语言具有自己的、类似于JUnit的测试框架,这些框架都可以从网上免费下载 。
对于已经用过单元测试的一些高级程序员,我们希望本书同样可以给你带来一些惊喜。你们可以跳过介绍JUnit用法的那些基础性章节,把精力放到后面的一些章节,内容包括如何来考虑怎样测试,测试是如何影响设计的,以及你可能会遇到的某些能影响整个开发小组的问题。
而且,要记住本书只是一个开始。它可能是你读过的第一本讲述单元测试的书,但是我们不希望它是最后一本。
反馈能使这些书变得更加优秀,从而使开发者本身甚至整个项目都变得更加优秀。注重实效的(Pragmatic)程序员几乎都是使用这种来自现实的反馈(如单元测试)来优化代码,调整设计。
是什么让我们对单元测试如此重视呢?我们都明白,对一个程序员而言,单元测试是非常重要的,因为它提供了你所需要的反馈。试想,如果没有单元测试的话,你可能就像在一个yellow legal pad 上写程序,只能做最好的祈祷来盼望它能够正常运行。
这当然不是个可行的做法。
对此,本书可以给你提供帮助,它主要针对的读者是那些具有一定编码和设计经验,但是对单元测试并不是很有经验的Java程序员。
虽然我们是使用Java来编写书中的代码,使用的是JUnit框架;但是就单元测试中的这些概念而言,无论你用的是什么语言,比如C++、Fortran、Ruby、Smalltalk或者VisualBasic都是一样的;而且迄今为止,有超过60种不同的语言具有自己的、类似于JUnit的测试框架,这些框架都可以从网上免费下载 。
对于已经用过单元测试的一些高级程序员,我们希望本书同样可以给你带来一些惊喜。你们可以跳过介绍JUnit用法的那些基础性章节,把精力放到后面的一些章节,内容包括如何来考虑怎样测试,测试是如何影响设计的,以及你可能会遇到的某些能影响整个开发小组的问题。
而且,要记住本书只是一个开始。它可能是你读过的第一本讲述单元测试的书,但是我们不希望它是最后一本。








点击看大图





加载中...


