(原创)单元测试Junit快速上手

在看本文前,作者是使用eclipse+myEclipse开发平台,并且在eclipse上安装了Junit插件,关于插件的安装与使用,这里不详细叙述,具体操作可以上网找。很多的。
          这里介绍单元测试与 EasyMock 的简单理解和用法。
        进行单元测试可以使代码的测试细化到方法粒子,对于每个功能都进行单元测试,可以使自己的代码更安全,同时产出高质量的代码,不多说,现在看看单元测试 Junit 的用法。
        这里我写了一个 Sample 类,作为下面测试的代码,代码如下:
package sample;
/*
* @author five00
*/
public class Sample {
    String result ;
     public void compWord(String m){
       
        if (m == null ){
           
            result = null ;
       } else if (m.equals( "hello" )){
           
            result = new String( "friend" );
       } else if (m.equals( "go out" )){
           
            result = new String( "enemy" );
       }
    }
}
       Sample 有一个 compWord 方法,测试的目的就是要对字符串‘ m ’输入不同的数据,然后观察结果 result 的值。这里, result 会有三个值 ---friend enemy 以及 null
     文章太长。。。下一篇写测试类
看一下测试类JunitSample,代码如下:
package sample;
import junit.framework.TestCase;
/*
* @author five00
*/
public class JUnitSample extends TestCase{
    Sample sample = new Sample();
    
     public void testCompWord(){
       
        sample .compWord( "hello" );
       assertEquals( " 结果异常! " , "friend" , sample . result );
       
        sample .compWord( "go out" );
       assertEquals( " 结果异常! " , "enemy" , sample . result );
       
        sample .compWord( null );
       assertNull( " 结果异常! result 不为空 " ,   sample . result );
       
        sample .compWord( "aaa" );
       assertNull( " 结果异常! result 不为空 " ,   sample . result );
    }
}
        编写单元测试需要注意两点:
1.         单元测试类要继承 TestCase 接口
2.         单元测试的测试方法(这里的测试方法是 testCompWord() )不能有方法参数,就是括号里不能有参数。
单元测试还有一些规范,例如将测试方法以 test 开头,但是这不是硬性的,主要还是习惯问题。
看一下上面的代码,主要测试 Sample 类的 compWord 方法,在测试方法中总共调用了 compWord 方法四次,每次传入的参数均不相同,其中的 assertXXX 方法就是 Junit 提供的结果比较方法。
因为做单元测试时我们会知道传入某些数据后结果会是如何,比如某个方法调用后,一些参数具体值是什么或者是否为空之类的, assertXXX 方法的意义就在于,它提供了很多比较,供我们选择,使我们能够很快的比较结果,这里主要用了两个方法, assertEquals assertNull ,这两个方法的意思分别是比较两个参数是否值相等与当前参数是否为空,其中第一个字符串参数是测试失败时输出的结果。
上面的代码对于 m 值的四种情况全部列出,分别是 hello go out null 与其它值的情况,做测试的时候,我们也应该尽可能地将所用情况考虑进来,考虑越多,测试的效果越好。
上面的 Junit 测试使用起来很简单,如果看书的话,可能还要看很多概念,但是相信本文可以使您更快上手。

如果还有问题,请联系本人。
QQ 71877848
e-mail five00@163.com
百度空间: http://hi.baidu.com/five00 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值