ITKeyword,专注技术干货聚合推荐

注册 | 登录

Java程序的单元测试-进入junit的天堂

CManLH 分享于 2007-07-28

推荐:软件测试(java JUnit单元测试)

转载 http://developer.51cto.com/art/200805/87677.htm Java语言是一个支持面向对象的语言,通常情况下我们可以将程序的一个单元看成是一个独立的类, 因此进行

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

 
作者: Keld H. Hansen            翻译: CManLH                原文地址

  一、 介绍
  二、 进入junit的天堂
  三、 Round类  
  四、分析并获取测试用例

junit简介
  junit是一个以java作为开发语言的开源项目,她为单元测试提供了一个非常棒的架构。使用junit的话,上节提到的代码就会演变成:

assertEquals( 0 , c.parUpToHole( 0 ));
assertEquals( 8 , c.parUpToHole( 2 ));
assertEquals( 72 , c.parUpToHole( 18 ));
  如此优美的代码,是不是更合符合我们的心愿。同时,junit也提供了更好的报错机制。例如,将最后一行的"72"改成"71",junit会给出如下消息:

There was  1  failure:
1 ) testSomething(hansen.playground.TestCourse)
junit.framework.AssertionFailedError:
    expected: < 71 >  but was:  < 72 >
  此时此刻,我们还自动的获得了表达式“c.parUpToHole(18)”的实际值。

  junit提供了许多的功能,但在下面的例子中,将只展示其中最普遍、最简单的几个。如果你有兴趣深入junit,发挥其强大的作用,请登录www.junit.org,

推荐:Android Junit单元测试

1,启动模拟器 2,建立主Activity (TestJunitActivity.java) package sn.len.junitpreactive;import android.app.Activity;import android.os.Bundle;public

那儿有一些很有用的文章。

  要想junit发挥作用,我们必须遵守一些规定或者法则。暂如下:

  1、你设计的测试类必须继承junit类中的TestCase类

  2、如果你的测试用例拥有一些共同的数据或者操作,请在setUp方法中做这些事情

  3、测试代码(例如:调用"assertEquals")必须放在一个或者多个名字以"test"开头的方法中

  如此,上面的三个测试会演变成如下类:

package  nansen.playground;

import  junit.framework. * ;

public   class  TestCourse  extends  TestCase  ... {
    private Course c;
    
    public TestCourse(String name) ...{
        super(name);
    }
    
    protected void setUp() ...{
        c = new Course();
        c.setName("St. Andrews");
        int[] par = ...{4,4,4,4,5,4,4,3,4,4,3,4,4,5,4,4,4,4};
        c.setPar(par);
    }
    
    public void testSomething() ...{
        assertEquals(0, c.parUpToHole(0));
        assertEquals(8, c.parUpToHole(2));
        assertEquals(72, c.parUpToHole(18));
    }
}

  注意:我们导入了junit.framework包,它可以从www.junit.org下载。setUp方法有一个兄弟方法:tearDown,专门用来释放setUp方法分配的资源。

运行junit测试的工具
  junit提供了其测试程序的的运行工具,同样采用java编写。它可以在命令行中通过批处理方式运行,例如:java junit.textui.TestRunner hansen.playground.TestCourse

  或者也可以调用AWT或者Swing的可视化界面:

  java junit.awtui.TestRunner hansen.playground.TestCourse

  -- 或者 --

  java junit.swingui.TestRunner hansen.playground.TestCourse

  它们会建立相应的GUI界面:

  

  通过输入类名,按下“Run”按钮就可以测试相应程序了。

  对于自动化测试,我们倾向于批处理方式。如果这样,其实可以直接在测试程序本身实现,需要做的就是添加一个main方法:

public   static   void  main(String[] args)  ... {
    junit.textui.TestRuuner.run(TestCourse.class);
}
assert-方法
  其实还有许多类似上面代码中"assertEquals"的方法,其中重要的一些如下:

方法名 作用 assertEquals(a,b) 断言两个参数相等。其中a和b必须是同一种数据类型或者对象 assertTrue(boolean) 断言给出的条件为真 assertNull(Object) 断言参数对象为Null assertSame(Object, Object) 断言两个参数对象引用的是同一个对象








推荐:【软件测试】使用JUnit框架实现Java单元测试

随着软件项目的逐渐增大,软件测试在软件开发中的地位显得越来越重要。如果软件项目没有良好的测试流程,随着系统的增大,无论项目管理人员还是软件开发人员都会

  作者: Keld H. Hansen            翻译: CManLH                原文地址   一、 介绍   二、 进入junit的天堂   三、 Round类     四、分析并获取测试用例 junit简介   junit是

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。