JUnit起步范例

最简单的范例如下:

1、创建一个TestCase的子类:

package junitfaq;
import java.util.*;
import junit.framework.*;
public class SimpleTest extends TestCase {
public SimpleTest(String name) {
super(name);
}

2、写一个测试方法断言期望的结果:

public void testEmptyCollection() {
Collection collection = new ArrayList();
assertTrue(collection.isEmpty());
}

注意:JUnit推荐的做法是以test作为待测试的方法的开头,这样这些方法可以被自动找到并被测试。

3、写一个suite()方法,它会使用反射动态的创建一个包含所有的testXxxx方法的测试套件:

public static Test suite() {
return new TestSuite(SimpleTest.class);
}

4、写一个main()方法以文本运行器的方式方便的运行测试:

public static void main(String args[]) {
junit.textui.TestRunner.run(suite());
}
}

5、运行测试:

以文本方式运行:

java junitfaq.SimpleTest

通过的测试结果是:

.

Time: 0

OK (1 tests)

Time上的小点表示测试个数,如果测试通过则显示OK。否则在小点的后边标上F,表示该测试失败。

每次的测试结果都应该是OK的,这样才能说明测试是成功的,如果不成功就要马上根据提示信息进行修正了。

如果JUnit报告了测试没有成功,它会区分失败(failures)和错误(errors)。失败是你的代码中的assert方法失败引起的;而错误则是代码异常引起的,例如

ArrayIndexOutOfBoundsException。

以图形方式运行:

java junit.swingui.TestRunner junitfaq.SimpleTest

通过的测试结果在图形界面的绿色条部分。

以上是最简单的测试样例,在实际的测试中我们测试某个类的功能是常常需要执行一些共同的操作,完成以后需要销毁所占用的资源(例如网络连接、数据库连接,关闭打开的文件等),TestCase类给我们提供了setUp方法和tearDown方法,setUp方法的内容在测试你编写的TestCase子类的每个testXxxx方法之前都会运行,而tearDown方法的内容在每个testXxxx方法结束以后都会执行。这个既共享了初始化代码,又消除了各个测试代码之间可能产生的相互影响。

时间: 2024-10-21 23:10:12

JUnit起步范例的相关文章

《JUnit实战(第2版)》—— 第1章 Unit起步

第1章 Unit起步 JUnit实战(第2版)Never in the field of software development was so much owed by so many to so few lines of code. 在软件开发领域中,从来没有这样的事情:少数几行代码对大量代码起着如此重要的作用. --Martin Fowler 本章重点 探索JUnit安装JUnit编写第一个测试运行测试所有的代码都需要进行测试. 在开发期间,我们所做的第一件事是运行程序员自己的"验收测试&

JUnit和单元测试入门简介

JUnit和单元测试入门简介 1.几个相关的概念 白盒测试--把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的. 回归测试--软件或环境的修复或更正后的"再测试",自动测试工具对这类测试尤其有用. 单元测试--是最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设计和编码的细节. JUnit --是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.他是用于单元测试框架体系xUnit的一个实例(用于java语言).主要

TestNG官方文档中文版(9)-重复失败测试,junit测试,jdk1.4支持

5.10 - Rerunning failed tests 套件中的测试失败时,每次testNG都会在输出目录中创建一个名为testng-failed.xml 的文件.这个xml文件包含只重新运行这些失败的测试方法的必要信息,容许只运行这些 失败的测试而不必运行全部测试.因此,一种典型的情况将是这样: java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml java -classpat

Google Guice范例解说之使用入门

本文通过范例简单地介绍Google Guice的使用,通过下面的范例我们可以知道,Google Guice的使用非常简单. Google Guice需要使用JDK1.5以上java环境. 下载Google Guice之后, 有以下几个文件: aopalliance.jar guice-1.0.jar guice-servlet-1.0.jar guice-spring-1.0.jar guice-struts2-plugin-1.0.jar 本例只使用到guice-1.0.jar文件,将其加入到

JUnit断言扩展

JUnit 通过制作满足预期需求的断言来测试软件代码单元,但是这些断言只限于基本操作.IBM 软件工程师 Tony Morris 通过引入 JUnit 断言扩展(Assertion Extensions for JUnit)填补了这个空白,JUnit 断言扩展提供了一整套在 JUnit 框架中执行的复杂断言.下面请随作者的演示一道,了解如何使用这个来自 alphaWorks 的新包来提高 Java 软件的可靠性和健壮性. 流行的 JUnit 自动单元测试框架提供了通过制作满足预期需求的断言来测试

《JUnit实战(第2版)》—第1章1.1节证实它能运行

第1部分 认识JUnit JUnit实战(第2版) 欢迎阅读<JUnit实战(第2版)>!JUnit是一个由Kent Beck和Erich Gamma于1995年年底着手编写的框架.自此以后,JUnit框架日益普及,现在已经成为单元测试Java应用程序的事实上的标准. 本书是第2版.<JUnit实战>的第1版非常畅销,由Vincent Massol和Ted Husted于2003年编写,其内容是基于JUnit 3.x版本的. 我们涵盖了JUnit最新的版本4.6,讨论了许多第1版尚

JML起步---使用JML 改进你的Java程序(4)

异常行为 前面给出的行为规范要求调用peek() 和 pop()方法时队列不能为空,但其实当队列空时是有可能会调用这两个方法的.如果发生这种情况,这两个方法就会抛出一个NoSuchElementException.异常.我们必须修正我们前面制定的行为规范,允许这种可能的发生.在这种情况下,我们要使用JML的exceptional_behavior语句. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:off

《JUnit实战(第2版)》—— 导读

前言 JUnit实战(第2版)作为一个屡获殊荣的数学家,我无法容忍平庸.这就是数学所教给我的─不要停止,直到你把它完成,并且不仅要用好的方法,而且要用最好的方法. 当我开始编写软件时,我发现这条原则同样适用.我认识一些同事,他们对自己的工作非常马虎随便,并且我也看到了他们因为自己的疏忽大意而深受其害.他们不耐烦地完成他们的任务,从不担心他们开发的软件质量,更不用说寻找可能的最佳解决方案.对于那些家伙,重用相同的代码就意味着,在任何他们需要相同代码的地方简单地复制和粘贴它即可.我看到了不耐烦地尽快

从个人网站起步的穷游网,为何10年坚持做一家慢公司?

中介交易 SEO诊断 淘宝客 云主机 技术大厅 导语:在所有互联网公司都靠以快取胜的时候,穷游网却选择做一家"慢公司",为什么阿里巴巴会投资它? 穷游网在2011年前后,在微博SNS如日中天的时代,获得很好的发展机会,用户产生爆发式的增长.它在去年,还获得来自阿里巴巴的战略投资. 穷游到底是一家什么样的公司?穷游的网友是怎样的一群人,是什么力量在驱动他们写那么长的攻略?在所有互联网公司都靠以快取胜的时候,他们却选择做一家慢公司,为什么阿里巴巴会投资这样一家慢公司?前不久,带着这一连串的