JUnit 4 抢先看<o:p></o:p>
即将发布的版本承诺在测试方面有新的进展<o:p></o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style="WIDTH: 0.75pt; HEIGHT: 4.5pt"><v:imagedata o:href="http://www.ibm.com/i/c.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\03\clip_image001.gif"></v:imagedata></v:shape><o:p></o:p>
|
<o:p> </o:p>
|
<o:p></o:p>
|
<o:p> 转自: http://www.ibm.com/developerworks/cn/java/j-junit4.html</o:p>
<v:shape id="_x0000_i1026" type="#_x0000_t75" alt="" style="WIDTH: 7.5pt; HEIGHT: 0.75pt"><v:imagedata o:href="http://www.ibm.com/i/c.gif" src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\03\clip_image001.gif"></v:imagedata></v:shape><o:p></o:p>
|
<o:p> </o:p>
|
<o:p> </o:p>
|
级别: 中级<o:p></o:p>
Elliotte Harold (elharo@metalab.unc.edu), 副教授, Polytechnic University<o:p></o:p>
<st1:chsdate isrocdate="False" month="10" day="13" islunardate="False" w:st="on" year="2005">2005 年 10 月</st1:chsdate> 13 日<o:p></o:p>
JUnit 是 Java? 语言事实上的 标准单元测试库。JUnit 4 是该库三年以来最具里程碑意义的一次发布。它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类、反射或命名机制来识别测试,从而简化测试。在本文中,执着的代码测试人员 Elliotte Harold 以 JUnit 4 为例,详细介绍了如何在自己的工作中使用这个新框架。注意,本文假设读者具有 JUnit 的使用经验。<o:p></o:p>
JUnit 由 Kent Beck 和 Erich Gamma 开发,几乎毫无疑问是迄今所开发的最重要的第三方 Java 库。正如 Martin Fowler 所说,“在软件开发领域,从来就没有如此少的代码起到了如此重要的作用”。JUnit 引导并促进了测试的盛行。由于 JUnit,Java 代码变得更健壮,更可靠,bug 也比以前更少。JUnit(它本身的灵感来自 Smalltalk 的 SUnit)衍生了许多 xUnit 工具,将单元测试的优势应用于各种语言。nUnit (.NET)、pyUnit (Python)、CppUnit (C++)、dUnit (Delphi) 以及其他工具,影响了各种平台和语言上的程序员的测试工作。<o:p></o:p>
然而,JUnit 仅仅是一个工具而已。真正的优势来自于 JUnit 所采用的思想和技术,而不是框架本身。单元测试、测试先行的编程和测试驱动的开发并非都要在 JUnit 中实现,任何比较 GUI 的编程都必须用 Swing 来完成。JUnit 本身的最后一次更新差不多是三年以前了。尽管它被证明比大多数框架更健壮、更持久,但是也发现了 bug;而更重要的是,Java 不断在发展。Java 语言现在支持泛型、枚举、可变长度参数列表和注释,这些特性为可重用的框架设计带来了新的可能。<o:p></o:p>
JUnit 的停滞不前并没有被那些想要废弃它的程序员所打败。挑战者包括 Bill Venners 的 Artima SuiteRunner 以及 Cedric Beust 的 TestNG 等。这些库有一些可圈可点的特性,但是都没有达到 JUnit 的知名度和市场占有份额。它们都没有在诸如 Ant、Maven 或 Eclipse 之类的产品中具有广泛的开箱即用支持。所以 Beck 和 Gamma 着手开发了一个新版本的 JUnit,它利用 Java 5 的新特性(尤其是注释)的优势,使得单元测试比起用最初的 JUnit 来说更加简单。用 Beck 的话来说,“JUnit 4 的主题是通过进一步简化 JUnit,鼓励更多的开发人员编写更多的测试。”JUnit 4 尽管保持了与现有 JUnit 3.8 测试套件的向后兼容,但是它仍然承诺是自 JUnit 1.0 以来 Java 单元测试方面最重大的改进。<o:p></o:p>
注意:该框架的改进是相当前沿的。尽管 JUnit 4 的大轮廓很清晰,但是其细节仍然可以改变。这意味着本文是对 JUnit 4 抢先看,而不是它的最终效果。<o:p></o:p>
测试方法<o:p></o:p>
以前所有版本的 JUnit 都使用命名约定和反射来定位测试。例如,下面的代码测试 1+1 等于 2:<o:p></o:p>
import junit.framework.TestCase;<o:p></o:p>
public class AdditionTest extends TestCase {<o:p></o:p>
private int x = 1;<o:p></o:p>
private int y = 1;<o:p></o:p>
<o:p></o:p>
public void testAddition() {<o:p></o:p>
int z = x + y;<o:p></o:p>
assertEquals(2, z);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
|
<o:p> </o:p>
而在 JUnit 4 中,测试是由 @Test 注释来识别的,如下所示:<o:p></o:p>
import org.junit.Test;<o:p></o:p>
import junit.framework.TestCase;<o:p></o:p>
public class AdditionTest extends TestCase {<o:p></o:p>
private int x = 1;<o:p></o:p>
private int y = 1;<o:p></o:p>
<o:p></o:p>
@Test public void testAddition() {<o:p></o:p>
int z = x + y;<o:p></o:p>
assertEquals(2, z);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
|
<o:p> </o:p>
使用注释的优点是不再需要将所有的方法命名为 testFoo()、testBar(),等等。例如,下面的方法也可以工作:<o:p></o:p>
import org.junit.Test;<o:p></o:p>
import junit.framework.TestCase;<o:p></o:p>
public class AdditionTest extends TestCase {<o:p></o:p>
private int x = 1;<o:p></o:p>
private int y = 1;<o:p></o:p>
<o:p></o:p>
@Test public void additionTest() {<o:p></o:p>
int z = x + y;<o:p></o:p>
assertEquals(2, z);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
|
<o:p> </o:p>
下面这个方法也同样能够工作:<o:p></o:p>
import org.junit.Test;<o:p></o:p>
import junit.framework.TestCase;<o:p></o:p>
public class AdditionTest extends TestCase {<o:p></o:p>
private int x = 1;<o:p></o:p>
private int y = 1;<o:p></o:p>
<o:p></o:p>
@Test public void addition() {<o:p></o:p>
int z = x + y;<o:p></o:p>
assertEquals(2, z);<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
|
<o:p> </o:p>
这允许您遵循最适合您的应用程序的命名约定。例如,我介绍的一些例子采用的约定是,测试类对其测试方法使用与被测试的类相同的名称。例如,L |
分享到:
相关推荐
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar完整包”包含了所有你需要进行单元测试的类和接口,使得测试过程变得简单且易于...
JUnit4测试框架是Java开发中广泛使用的单元测试工具,它为开发者提供了编写和运行可重复、可靠的测试用例的能力。这个“junit4测试jar包”包含了一切你需要在项目中集成JUnit4进行测试的库文件。只需将其复制到你的...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了编写可重复执行、易于维护的测试代码的能力。这个“junit4 jar包”包含了运行JUnit4测试所必需的库文件,主要包括两个核心组件:`junit-4.11....
### JUnit4 学习知识点详解 #### 一、JUnit4 概述 JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了强大的工具来编写、组织和执行单元测试。JUnit4引入了许多改进和新特性,极大地提升了测试的灵活性和效率。下面将详细介绍JUnit4的关键概念、...
**JUnit4教程——初探单元测试的艺术** JUnit4是Java编程语言中广泛使用的单元测试框架,它是Java开发者进行软件质量保证的重要工具。本教程将深入浅出地介绍JUnit4的基本概念、核心特性以及如何在实际项目中应用它...
JUnit4 教程详尽 JUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。下面是对 JUnit4 的详细介绍: 一、Annotation 简介 Annotation 是 Java5 中引入的...
JUnit 4 抢先看.doc JUnit in java 真正的测试用例实战.doc JUnit起步.doc junit实现过程.doc JUnit中如何测试异常.doc XP 单元测试工具Junit 源代码学习.doc 如果你觉得好的话,给个好评,谢谢大家!
JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...
总结来说,JUnit4 是对 JUnit3 的一个重要升级,它利用 Java 5 的注解特性极大地简化了测试用例的编写,提高了测试代码的可读性和可维护性。通过使用注解,开发者能够更自由地组织测试逻辑,同时也能够方便地扩展...
赠送jar包:powermock-module-junit4-2.0.9.jar; 赠送原API文档:powermock-module-junit4-2.0.9-javadoc.jar; 赠送源代码:powermock-module-junit4-2.0.9-sources.jar; 赠送Maven依赖信息文件:powermock-...
JUnit4 是一个广泛使用的Java编程语言的单元测试框架。它为开发者提供了一种方便的方式来编写和执行可重复的、自动化的测试用例,确保代码的质量和功能稳定性。JUnit4源码的完整版本包含了整个框架的实现细节,对于...
《JUnit4:Java单元测试框架详解》 JUnit4是一款广泛应用于Java编程领域的单元测试框架,它的出现极大地简化了测试代码的编写,提升了测试的效率。本文将深入探讨JUnit4的核心特性、使用方法以及如何将其应用到实际...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar包 Java单元测试框架绿色免费版.zip”文件包含的是JUnit4框架的可执行jar包,用于...
JUnit4 使用方法 JUnit4 是一个流行的 Java 单元测试框架,提供了许多功能强大且灵活的测试工具。本文将详细介绍 JUnit4 的使用方法和核心概念。 JUnit4 核心概念 JUnit4 的核心概念包括测试类、测试集和测试运行...
JUnit4 是一个广泛使用的Java编程语言的单元测试框架,它为开发者提供了编写和运行可重复测试的工具。这个“Junit4电子教程 API”可能是针对如何有效地利用JUnit4 API进行测试编写的一份详细指南。在Java开发过程中...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个压缩包文件包含了JUnit4的相关库,使得开发人员能够轻松地在他们的项目中引入单元测试功能。...
【标题】"junit4 单元测试源码"涉及的是Java编程中单元测试的重要工具JUnit4的使用,这是对代码进行验证和调试的关键部分。JUnit4是JUnit框架的一个版本,它提供了更灵活的注解、测试套件管理和断言方式,使得编写...