一、简介
Junit 4是Junit框架有史以来的最大改进,其主要目标便是利用Java 5的Annotation特性简化测试用例的编写。
在Eclipse 3.2中已经自带了Junit 4.1(我使用的开发环境是Eclipse 3.3+Myeclipse 6.0),我们可以将Junit 4 Library添加到项目用到的Library中。也可以到Junit.org去下载Junit 4 Librar。要求:JDK 5.0或以上版本。
二、使用
1、Junit 3中,Junit依赖反射来执行每个以test开头的方法,但是Junit 4中,有了Annotation的,我们的测试方法就不需要再以testXXX来标识了,而是写上一个@Test标注即可。如:
@Test public static void m1() {}
2、测试类也不必继承自TestCase了。我们可能会想到,不继承TestCase,我们就无法使用断言,即无法调用assertXxx()方法了。所以,在Junit 4中,所有的断言的方法全部都以静态方法的形式放入到了Assert类中,使用Assert.assertXxx()来调用,如果使用import static静态导入Assert,那么与Junit 3中使用断言是一样的。
3、Junit 3中,setUp()和tearDown()方法分别是准备测试环境和释放资源,在Junit 4中,这二个方法依赖于@Before和@After标记,好处是如果我们忘记了在这二个方法中调用父类的同名方法,Junit框架会自动处理使用@Before和@After标记的方法。
4、不再强迫必须使用setUp()和tearDown()作为方法名,可以使用更有意义的方法名。如:init()和close(),前提是它们被标注了@Before和@After标记
三、实例开发
我们还使用讲解Junit 3时使用的Calculate类
package junit;
public class Calculate {
public int add(int a, int b) {
return a + b;
}
public int minus(int a,int b)
{
return a - b;
}
}
Junit 4测试类
public class CalculateTest {
private Calculate cal ;
public CalculateTest()
{
System.out.println("创建了CalculateTest类的实例");
}
@Before
public void init() throws Exception {
cal = new Calculate();
System.out.println("测试方法前调用@Befored");
}
@After
public void close() throws Exception {
System.out.println("测试方法后调用@After");
}
@Test
public void doAdd() {
assertEquals(cal.add(1, 2), 3);
}
@Test
public void testMinus() {
assertEquals(cal.minus(2, 1), 1);
}
}
四、测试异常:
对测试异常,JUnit 4可以用expected=Exception.class来期待一个预期的异常,而不必手动编写。如:测试以下方法,
public int div(int a,int b)
{
return a / b;
}
可能会抛出除数为0的异常,我们可以这样来编写:
@Test(expected=ArithmeticException.class)
public void testDiv() {
cal.div(5, 0);
}
五、设置最长执行时间
对于非常耗时的测试,@Test还有一个timeout来标识该方法最长执行时间,超过此时间即表示该方法测试失败:1为毫秒数
@Test(timeout=1)
public void testMinus() {
assertEquals(cal.minus(2, 1), 1);
}
六、@BeforeClass和@AfterClass
这是Junit 4与Junit 3相比较另一个较大的区别。它们在一个Test类的所有测试方法执行前后各执行一次。这是为了初始化一些重要的资源,比如数据库连接,会在@BeforeClass中来执行初始化,然后再执行测试方法,最后在@AfterClass中释放资源。
由于这二个方法在运行其间仅执行一次,因此它们只能标记为静态方法,其实在所有的测试方法中共享的资源也必须是静态引用。如:
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("call @BeforeClass and init database connection");
dbConnection = new Object();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("call @AfterClass to release database connection");
dbConnection = null;
}
注意:
Java 5.0中的自动Box/UnBox特性,在调用assertEquals()时要注意:如果我们这样写:
assertEquals(100f,100);
按照自动装箱会变成:
assertEquals(new Float(100f),new Integer(100));
这样会引起测试失败,因为它们类型不一样。
因此我们对float和double的测试,应试使用:
assertEquals(float, float, float delta);
assertEquals(double, double, double delta);
还有一点,Junit 4不能与以前的版本兼容。
相关推荐
Java JUnit 包是用于Java编程中的一个单元测试框架,它极大地简化了对代码功能的验证和调试。JUnit是开源的,由Eclipse基金会维护,是开发者进行单元测试的首选工具。这个压缩包包含了不同版本的JUnit库,包括文档、...
这是本人在公司培训时做的一个PPT文档,介绍了junit3以及junit4,还有他们的区别使用
Java JUnit 单元测试是Java开发者进行代码质量把控的重要工具,它允许程序员对代码的各个模块进行独立验证,确保每个部分都能正常工作。然而,在实际使用过程中,开发者可能会遇到@Test注解报错的情况,这可能会影响...
Java Junit 单元测试实例详解 Java Junit 单元测试是软件测试中的一种重要方法,旨在确保软件的质量和可靠性。本篇文章将为大家详细讲解 Java Junit 单元测试的相关知识点内容。 一、测试分类 在软件测试中,测试...
JUnit是一个Java语言的单元测试框架。JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。 1、用于测试期望结果的断言(Assertion) 2、...
在这个"Java单元测试之JUnit"的代码实践中,我们将深入探讨JUnit的基本使用方法以及它在Java项目中的应用。 首先,JUnit是一个开源的、基于Java的测试框架,它允许开发者编写可执行的测试用例来检查代码的功能。...
Selenium Simplified是一本专门介绍如何使用Java和JUnit框架结合Selenium自动化测试工具进行软件测试的教程。本书由Alan Richardson编写,由Compendium Developments出版,并首次于2010年在大不列颠出版。本书不仅...
JUnit作为Java领域中最流行的单元测试框架之一,提供了强大的测试能力,帮助开发者编写高质量的代码。 #### 二、JUnit框架的内部工作机制 JUnit的核心设计理念是将测试逻辑与业务逻辑分离,通过一系列标准化的API...
《深入理解JUnit 4.9:Java测试框架的基石》 JUnit是Java编程语言中最流行的单元测试框架之一,尤其在Spring框架的开发中扮演着至关重要的角色。标题中的"junit-4.9.zip"是一个包含JUnit 4.9版本的压缩包,提供了一...
JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar包 Java单元测试框架绿色免费版.zip”文件包含的是JUnit4框架的可执行jar包,用于...
JUnit4测试框架是Java开发中广泛使用的单元测试工具,它为开发者提供了编写和运行可重复、可靠的测试用例的能力。这个“junit4测试jar包”包含了一切你需要在项目中集成JUnit4进行测试的库文件。只需将其复制到你的...
标签:junit、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
JUnit5是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了强大的测试能力,确保代码的质量和稳定性。本篇文章将详细介绍JUnit5的核心组件、主要功能以及如何在项目中使用。 JUnit5由三个主要模块组成...
Junit5的jar包,可用来测试Lambda表达式等。
Java单元测试之JUnit篇 Java单元测试是编写测试代码,应该准确、快速地保证程序基本模块的正确性。好的单元测试的标准是JUnit,它是Java单元测试框架,已经在Eclipse中默认安装。 JUnit4是JUnit的最新版本,通过...
JUnit,作为Java编程语言的事实上的标准测试框架,其在软件开发中的重要性不容忽视。由著名程序员Kent Beck和Erich Gamma发起,JUnit以其简洁而强大的功能,极大地推动了Java开发中的自动化测试实践。Martin Fowler...
标签:junit、jupiter、params、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...
资源对应https://onefire.blog.csdn.net/article/details/120736588博客,这个是一个完整的基于SpringBoot架构的Java项目,使用idea或者eclipse打开就可以使用。对零基础或小白,以及测试工程师,有很大的参考价值。
JUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。下面是对 JUnit4 的详细介绍: 一、Annotation 简介 Annotation 是 Java5 中引入的一种元数据特性,...
Junit 4.0 是Java开发领域中一个重要的里程碑,它是JUnit系列的第四个主要版本,专注于提升测试的灵活性和可扩展性。JUnit是Java语言中最广泛使用的单元测试框架,它使得开发者能够编写易于理解、运行快速且可靠的...