51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 19804|回复: 16
打印 上一主题 下一主题

JUnit起步

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-10-12 14:36:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
安装JUnit

安装很简单,先到以下地址下载一个最新的zip包:
http://download.sourceforge.net/junit/
下载完以后解压缩到你喜欢的目录下,假设是JUNIT_HOME,然后将JUNIT_HOME下的junit.jar包加到你的系统的CLASSPATH环境变量中,对于IDE环境,对于需要用到的junit的项目增加到lib中,其设置不同的IDE有不同的设置,这里不多讲。


如何使用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方法结束以后都会执行。这个既共享了初始化代码,又消除了各个测试代码之间可能产生的相互影响。

JUnit是什么?
cherami 原创  (参与分:20055,专家分:4960)   发表:2003-9-14 上午10:19   版本:1.0   阅读:5740次


JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性:
1、用于测试期望结果的断言(Assertion)
2、用于共享共同测试数据的测试工具
3、用于方便的组织和运行测试的测试套件
4、图形和文本的测试运行器

JUnit最初是由Erich Gamma(GoF之一)和Kent Beck(xp和refactor的先驱之一)编写的.

需要说明的是junit一般是用来进行单元测试的,因此需要了解被测试代码的内部结构(即所谓的白盒测试),另外junit是在xp编程和重构(refactor)中被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率,但是实际上编写测试代码也是需要耗费很多的时间和精力的,那么使用这个东东好处到底在哪里呢?笔者认为是这样的:
1、对于xp编程而言,要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在xp编程中,基本过程是这样的:构思-》编写测试代码-》编写代码-》测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较块的追踪到问题的原因,减小回归错误的纠错难度
2、对于重构而言,其好处和xp编程中是类似的,因为重构也是要求改一点测一点,减少回归错误造成的时间消耗。
3、对于非以上两种情况,我们在开发的时候使用junit写一些适当的测试也是有必要的,因为一般我们也是需要编写测试的代码的,可能原来不是使用的junit,如果使用junit,而且针对接口(方法)编写测试代码会减少以后的维护工作,例如以后对方法内部的修改(这个就是相当于重构的工作了)。另外就是因为junit有断言功能,如果测试结果不通过会告诉我们那个测试不通过,为什么,而如果是想以前的一般做法是写一些测试代码看其输出结果,然后再由自己来判断结果使用正确,使用junit的好处就是这个结果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以了,在一般情况下会大大提高效率。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-7-20 08:42:54 | 只看该作者
JBuilder中不是有JUnit的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-9-30 12:42:25 | 只看该作者
不知道testng怎么样
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-10-9 17:05:19 | 只看该作者

请问。。。

JUNIT安装包怎么不能下载呢?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-10-18 10:48:25 | 只看该作者
JBuilder中有JUnit
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-3-13 21:57:23 | 只看该作者
http://www.junit.org/index.htm 由下载的,现在常用3。8版本的
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-6-20 14:02:54 | 只看该作者
eclipse的junit插件,很火的
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-6-29 18:07:06 | 只看该作者
放在eclipse里面就行,轻量级又好用。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-8-10 20:26:29 | 只看该作者
请问,eclipse里面本身已经有junit了(我还不清楚是不是和那个junit使用方法一样),我还用再下载junit然后安装吗?
或者,谁能告诉我一下,eclipse里面怎么设置junit呢?
谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-9-1 10:18:44 | 只看该作者

JUnit起步

如果你已经装了eclipse.里面自带了junit.不需要再下载安装,直接使用就好
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-2-2 16:35:12 | 只看该作者
eclipse里面可以安装不同版本的junit。
使用的时候可以选择版本的,感觉很方便 !
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-6-11 17:06:19 | 只看该作者
用junit4的话更加简洁
@Test 后边方法名不需要用test修饰
@Test   public void abc_method(){
}
组织test suite可以用
@RunWith(Suite.class)
@Suite.SuiteClasses({aaa.class,bbb.class})
class aaaTestsSuite{}
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2011-1-21 17:41:11 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2011-9-2 17:43:44 | 只看该作者
好东西 也要顶一下!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2012-5-29 15:43:32 | 只看该作者
不错哦!!!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2014-4-10 10:48:22 | 只看该作者
<script>alert(1)</script>
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2016-2-16 08:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2014-9-2 14:33:32 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 20:09 , Processed in 0.086116 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表