一、说明
JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。这两个牛人中 Erich Gamma 是 GOF 之一;Kent Beck 则在 XP 中有重要的贡献。
JUnit框架主要包括:
- TestCase 测试用例
- TestSuite 测试用例的集合
- TestResult 测试结果的描述与记录
- TestListener 测试过程中的事件监听这
- TestFailure 测试失败元素
- AssertionFailedError 出错异常
下面是JUnit一些特性的总结:
1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
2) 提供了三种方式来显示你的测试结果,而且还可以扩展
3) 提供了单元测试用例成批运行的功能
4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5) 整个框架设计良好,易扩展
对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性质,以下仅以Class测试为例。
二、下载
点击http://www.junit.org可以下载到最新版本的JUnit,本文使用的为3.8.1版。至于安装或者配置之类,你只需要轻松的将下载下来的压缩包中的jar文件,放到你工程的classpath中就可以了。
这样,你的系统中就可以使用JUnit编写单元测试代码了(是不是很简单)!
三、HelloWorld
记得在几乎每本语言教学书上都能找到HelloWorld这个入门代码。今天在这里,我们也从一个简单到根本不用单元测试的例子入手。这是一个只会做两数加减的超级简单的计算器(小学一年级必备极品)。代码如下:
public class SampleCalculator
{
public int add(int augend , int addend)
{
return augend + addend ;
}
public int subtration(int minuend , int subtrahend)
{
return minuend - subtrahend ;
}
}
将上面的代码编译通过。下面就是我为上面程序写的一个单元测试用例:
//请注意这个程序里面类名和方法名的特征
import junit.framework.TestCase;
public class TestSample extends TestCase
{
public void testAdd()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.add(50 , 20);
assertEquals(70 , result);
}
public void testSubtration()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.subtration(50 , 20);
assertEquals(30 , result);
}
}
好了,在DOS命令行里面输入javac TestSample.java 将测试类编译通过。然后再输入 java junit.swingui.TestRunner TestSample 运行测试类,你会看到如下的窗口。
绿色说明单元测试通过,没有错误产生;如果是红色的,则就是说测试失败了。这样一个简单的单元测试就完成了.
按照框架规定:编写的所有测试类,必须继承自junit.framework.TestCase类;里面的测试方法,命名应该以Test开头,必须是public void 而且不能有参数;而且为了测试查错方便,尽量一个TestXXX方法对一个功能单一的方法进行测试;使用assertEquals等junit.framework.TestCase中的断言方法来判断测试结果正确与否。
你可以对比着上面测试类中的实现来体会下规定——很简单!而且你在这个测试类中有加入多少个测试方法,就会运行多少个测试方法。
四、向前一步
学完了HelloWorld,你已经可以编写标准的单元测试用例了。但是还有一些细节,这里还要说明一下。不要急,很快的!
另外你是否注意到,上面弹出窗口的一个细节,在绿条下面有Errors、Failures统计。这两者有何区别呢?
Failures作为单元测试所期望发生的错误,它预示你的代码有bug,不过也可能是你的单元测试代码有逻辑错误(注意是逻辑错误)。Errors不是你所期待的,发生了Error你可以按照下面的顺序来检查:
检查测试所需的环境,如:数据库连接
检查单元测试代码
检查你的系统代码
五、成批运行test case
这是前面提到的JUnit特性之一。它方便于系统单元测试的成批运行。使用起来也是非常简单,先看下使用代码:
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll{
public static Test suite(){
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite( TestSample.class);
return suite;
}
}
这个测试程序的编译、运行,和上面TestSample的方式是一样的。
javac TestAll.java
java junit.swingui.TestRunner TestAll
这样你在suite方法里面添加几个TestCase就会运行几个,而且它也可以添加TestSuite来将小一点的集合加入大的集合中来,方便了对于不断增加的TestCase的管理和维护。
suite方法的作用与java应用程序的main很类似,并且这里的suite必须严格遵守上面的写法!
分享到:
相关推荐
### JUnit5学习入门知识点详解 #### 一、JUnit简介 JUnit是一个开源的Java单元测试框架,被广泛应用于软件开发中的测试驱动开发(TDD)流程之中。它支持开发者通过编写测试代码来验证软件功能是否符合预期,从而提高...
《Junit 入门与提高实例代码》是针对Java开发者,特别是J2EE环境下的测试工程师的一份宝贵资源。这份资料旨在帮助初学者快速掌握Junit的使用,并通过实例提升测试技能,确保J2EE应用的质量和稳定性。下面将详细阐述...
jUnit 测试框架入门详解 jUnit 是一个开源的 Java 语言的单元测试框架,其专门针对 Java 语言设计,使用十分广泛。jUnit 已成事实上的标准单元测试框架(行业标准)。 jUnit 的优点包括:可以使用断言...
### JUnit入门教程知识点概述 #### 一、JUnit简介 - **定义**:JUnit是一种针对Java编程语言的单元测试框架。它在测试驱动开发(TDD)的发展中扮演了重要角色,并且是XUnit家族的一员,这个家族起源于JUnit。 - **...
### JUnit介绍与基础知识 #### 一、JUnit概述 JUnit是一种用Java编写的开源单元测试框架,最初由软件工程界的知名人士Erich Gamma和Kent Beck共同创建。它旨在帮助开发者编写可重复执行的测试代码,确保软件的质量...
2. JUnit入门:学习如何设置JUnit项目,编写基本的测试用例,以及使用JUnit的各种特性。 3. Mockito基础:了解Mockito的基本概念,如何创建mock和spy对象,以及使用when()和verify()方法。 4. 高级Mockito技巧:包括...
### Robotium入门知识详解 #### 一、Junit框架原理 JUnit 是一个广泛应用于 Java 开发中的单元测试框架,它提供了简洁高效的测试方法,能够帮助开发者编写可维护性高的测试用例。 - **核心概念**: - `TestCase`...
- **JUnit基础知识**:介绍JUnit的基本概念、安装配置以及简单的测试案例。 - **Mockito入门**:讲解Mockito的核心概念和基本使用方法。 - **JUnit与Mockito的集成**:演示如何将JUnit和Mockito结合起来进行单元测试...
JUnit是Java编程语言中广泛使用的单元测试框架,它使得编写和执行测试用例变得简单。在介绍JUnit前,我们需要理解TDD的核心思想,即“红-绿-重构”循环: 1. **红** - 创建一个测试用例,运行它,观察它失败(红色...
### Junit单元测试入门知识点详解 #### 一、JUnit简介 JUnit是由Kent Beck与Erich Gamma共同开发的一款针对Java语言的单元测试框架。它作为Java领域内最重要的第三方库之一,几乎成为了Java单元测试的标准工具。...
**JUnit使用指南:初学者入门** JUnit是一款广泛应用于Java编程中的单元测试框架,它使得开发者能够轻松编写和执行测试用例,确保代码的正确性。本文将深入介绍JUnit的基础知识和使用方法,帮助初学者快速上手。 #...
读者可以尝试创建一个简单的JUnit测试项目,然后逐步引入Testcast Testsuite,实现测试计划的管理。通过实际操作,理解每个步骤的作用,从而提高测试效率。 总结,理解并熟练使用JUnit和Eclipse Testcast Testsuite...
这一章节为读者提供了JUnit的基本概念和安装指南,同时介绍了如何创建简单的JUnit测试用例。此外,本章还探讨了JUnit的执行机制以及如何组织测试代码。 - **第2章:探索核心JUnit功能** 在这一章节中,作者...
在这个"简单入门的OA管理系统"中,我们看到它已经实现了部分功能,并且是基于MVC(Model-View-Controller)模式构建的,使用了Struct2框架。下面我们将深入探讨这个系统的核心组成部分及其相关知识点。 首先,MVC...
以上只是Android编程入门的一些基础知识点,随着学习深入,你还将接触到更复杂的主题,如多线程、异步处理、动画、自定义视图、Android组件间的交互等。总的来说,虽然Android编程涉及的内容广泛,但只要有了正确的...
【标题】"MyBatis简单入门实例"是一个关于学习MyBatis基础操作的教程,适合初学者了解并实践这个流行的Java持久层框架。MyBatis是一个优秀的轻量级ORM(对象关系映射)框架,它简化了数据库操作,将SQL语句与Java...
Junit 3.8是其早期的一个稳定版本,虽然现在已经有了更先进的Junit 5,但Junit 3.8仍然是许多开发者入门测试的首选。 1. **测试注解**:在Junit 3.8中,测试类和方法主要通过@Test注解来标识。虽然这个版本还没有...