包结构的变化
在junit4中开始使用这样的包结构:org.junit.* ,而不再像以前使用这样的包结构:junit.framework.*,但是为了向后兼容,在Junit4中将会让这两种包结构并存
继承上的变化
你的测试类再也不需要extends这个类junit.framework.TestCase了,而且不用显示的继承任何一个类,Junit通过采用JDK 5.0的annotations特性来完成了这种转变。如果想要执行一个test case,只需要在你的测试类中至少包含一个这样的annotation就可以了@Test。
打个比方,如果你写了这样的一个类,里面只包含了@Before 和 @After这样的annotation,却没有包含任何的@Test,那么在你开始运行这个测试类的时候,你会碰到一个java的异常:java.lang.Exception: No runnable methods.
断言方法的变化
因为在Junit 4中,测试类不再继承TestCase(在这个类里JUnit 3.8版本中定义了assertEquals()等方法),所以你需要使用一个前缀的语法就像这样:Assert.assertEquals(),或者用JDK 5.0中的静态导入,来导入Assert,之后,你就可以像之前那样使用assertEquals等等这些方法了
另外,在Junit 4中增加了两个新的断言方法,他们用来比较两个对象数组,如果两个数组中的每个元素都是equal的,那么就认为这两个数组是equal的:
public static void assertEquals(String message, Object[] expecteds, Object[] actuals);
public static void assertEquals(Object[] expecteds, Object[] actuals);
还有12个assertEquals 方法已经因为JDK 5.0中的autoboxing功能而彻底消失了。像这样assertEquals(long, long) 之前在JUnit 3.8中使用的方法,现在已经都统一改用assertEquals(Object, Object)方法。
Fixture
Fixtures是在测试期间用来初始化(initialize)和释放(release)对象的一些方法,在 In JUnit 3.8中,需要用setUp() 方法在运行测试方法之前进行一些初始化的工作,然后在测试完成之后用tearDown() 方法来进行善后工作。这两个方法都是从父类TestCase 中override过来的,因此他们的方法声明及方法名称是固定的。在JUnit 4中我们只要使用这两个annotation:@Before 和 @After 就可以达到同样的目的了,而且我们不用再强制的让方法必须叫这两个名字了。^_^
测试方法上的变化
在JUnit 3.8中,用来标识一个测试方法是通过它的方法签名来实现的,即方法必须以一个"test"的前缀来命名,且必须为void,而且必须没有任何参数(比如:public void testDivide()),那些不遵循这种命名规则的方法将会被简单的忽略掉,而且不会抛出任何异常来表面已经发生了错误。
在JUnit 4中就没有命名上的限制了,只需要在测试方法的签名加上一个这样的annotation就可以了:@Test,像之前的限制:方法必须为void,而且必须没有任何参数,这些还是一样需要,只是限制改为,如果没有遵守这些限制,则会在运行的时候抛出下面的异常:
java.lang.Exception: Method xxx should have no parameters
java.lang.Exception: Method xxx should be void
另外,@Test支持可选的expected参数,用来声明这个测试方法可以抛出一个异常,如果在测试时没有抛出异常,或者抛出了一个其他的异常,都会认为测试是失败的。比如可以这样来声明@Test(expected = ArithmeticException.class)。
忽略一个测试方法
如果你在测试之前知道某个方法测试一定会失败,但是,你又不想让测试失败,那么你怎么临时的让这个测试方法被忽略掉呢?在JUnit 3.8中要么将这个方法注释掉,要么就需要改变方法名称,即不使用test前缀开头来命名方法,问题是当测试的方法很多时,你可能不记得你重命名过的这个方法了。而在JUnit 4中可以通过去掉方法前面的@Test annotation来达到目的,但是上面的问题依然存在,一个终极解决方案是:在需要测试的方法前/后即@Test的前面或者后面加上@Ignore 就可以了,最后在测试报告中将会显示出有多少方法被忽略掉了,同时会显示多少方法运行成功,以及多少方法运行失败。Note:@Ignore 有一个可选的参数,可以用它来简单的记录为什么这个方法被忽略掉了。
运行测试
在JUnit 3.8中你可以有多种运行方式:text, AWT或者Swing,但是在JUnit 4中仅使用text方式。
转载网址:http://www.javaeedev.com/blog/article.jspx?articleId=ff8080811671d0c101167647403a01c1
分享到:
相关推荐
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar完整包”包含了所有你需要进行单元测试的类和接口,使得测试过程变得简单且易于...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了编写可重复执行、易于维护的测试代码的能力。这个“junit4 jar包”包含了运行JUnit4测试所必需的库文件,主要包括两个核心组件:`junit-4.11....
### JUnit4 学习知识点详解 #### 一、JUnit4 概述 JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的...
JUnit4测试框架是Java开发中广泛使用的单元测试工具,它为开发者提供了编写和运行可重复、可靠的测试用例的能力。这个“junit4测试jar包”包含了一切你需要在项目中集成JUnit4进行测试的库文件。只需将其复制到你的...
赠送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的关键概念、...
**JUnit4教程——初探单元测试的艺术** JUnit4是Java编程语言中广泛使用的单元测试框架,它是Java开发者进行软件质量保证的重要工具。本教程将深入浅出地介绍JUnit4的基本概念、核心特性以及如何在实际项目中应用它...
总结来说,JUnit4 是对 JUnit3 的一个重要升级,它利用 Java 5 的注解特性极大地简化了测试用例的编写,提高了测试代码的可读性和可维护性。通过使用注解,开发者能够更自由地组织测试逻辑,同时也能够方便地扩展...
JUnit4 教程详尽 JUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。下面是对 JUnit4 的详细介绍: 一、Annotation 简介 Annotation 是 Java5 中引入的...
在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...
Junit4作为Java领域最常用的单元测试框架,为开发者提供了方便、高效的测试工具。本文将深入探讨如何使用Junit4对名为Calculate的类进行单元测试,包括其加减乘除四个方法。 首先,我们需要了解Junit4的基本结构和...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar包 Java单元测试框架绿色免费版.zip”文件包含的是JUnit4框架的可执行jar包,用于...
JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...
JUnit4 是一个广泛使用的Java编程语言的单元测试框架。它为开发者提供了一种方便的方式来编写和执行可重复的、自动化的测试用例,确保代码的质量和功能稳定性。JUnit4源码的完整版本包含了整个框架的实现细节,对于...
JUnit4 使用方法 JUnit4 是一个流行的 Java 单元测试框架,提供了许多功能强大且灵活的测试工具。本文将详细介绍 JUnit4 的使用方法和核心概念。 JUnit4 核心概念 JUnit4 的核心概念包括测试类、测试集和测试运行...
JUnit4 是一个广泛使用的Java编程语言的单元测试框架,它为开发者提供了编写和运行可重复测试的工具。这个“Junit4电子教程 API”可能是针对如何有效地利用JUnit4 API进行测试编写的一份详细指南。在Java开发过程中...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了强大的测试工具,能够帮助他们编写可重复运行的、可靠的单元测试。在Java项目中,为了使用JUnit4进行测试,我们需要引入相应的jar包。这里...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个压缩包文件包含了JUnit4的相关库,使得开发人员能够轻松地在他们的项目中引入单元测试功能。...
【标题】"junit4 单元测试源码"涉及的是Java编程中单元测试的重要工具JUnit4的使用,这是对代码进行验证和调试的关键部分。JUnit4是JUnit框架的一个版本,它提供了更灵活的注解、测试套件管理和断言方式,使得编写...