单元测试之Junit测试框架

来源:互联网 发布:惯性导航算法 四元 编辑:程序博客网 时间:2024/05/02 06:44

看完这篇文章,不要再说自己不会单元测试了 ! ! !

Junit是什么!?单元测试框架!(Java+Unit)你真的没有用过吗?与之类似的TestNG,同样是一个单元测试框架,你可能也经常会用到。

单元测试是什么?通常来讲,单元测试也叫白盒测试,与黑盒测试不同,白盒测试需要看代码。

单元测试的内容是测试一个类内部的方法是否正确,返回值是否与预期值一致,如果返回值与预期值不符,那么使用Junit单元测试框架的时候就会报错,红色出错信息。

从狭义上来说单元测试是指一个函数、方法的功能测试验证,局限于一个class内部,以function为单位;

从广义上来说,任何一个project内部的功能都可以看做一个独立于其他部分的独立单元。从这个角度来讲单元测试无处不在。

从开发的角度来讲往往单元测试是开发来做的,也就是狭义上的单元测试,从大家目前的共识来说,也是这样的,因为这些部分是开发工作中的一部分。

单元测试框架Junit如何去用?我们使用的IDE是Eclipse。

首先要配置JDK,安装Eclipse,一般Eclipse中都默认安装了Junt4.

环境配置完成,Junit也配置好之后,开始Junit单元测试框架的第一步。

因为是单元测试,so 我们要有验证的东西。假设验证一个add方法。

class AddTest{

       public int add (int a , int b){

                  return a+b;

              }

   }

在这个类里我们写了一个add方法,传入int类型的两个值a和b,返回a+b。

如果没有其他错误,那么我们这个简单的加法方法能够完成对int类型的数值的自动加法操作。

下面就是Junit登场的时候了。

首先我们要再编写一个类。TestAdd类,在这个类里进行测试。

class TestAdd{

}

在这个类里我们要导入要使用的Junit的jar包,我们使用任何一个java的外部工具都要导入这个工具的jar包。

import Junit.Test;

inport Junit.Assert;

一个是Junit提供的测试包,一个是Junit的断言包。


然后引入我们要测试的类

AddTest at = new AddTest();


这些工作做完后要开始编写测试类了:

注意我们要让Junit帮助我们完成单元测试的话必须在测试类上方添加@Test的注解,只有这样Junit才会测试这个类


 @Test
 public void testAdd() {
        int d = c.add(1,2);
        Assert.assertEquals(3, d);
    }

到这里就大功告成了。

这里调用了一个Junit类库中的Assert类的方法,判断预期结果与实际结果是否一样。

绿色证明我们的方法是对的。

测试一下如果我们的方法是错误的会怎么样。

把return a+b 变为 a*b;

结果会怎么样?

红色错误,点击左下角的错误信息,可以定位到错误的位置。可以看到执行到我们编写的断言方法时出现了错误。

结果虽然错误,但是与我们的预期一致。

使用Junit可以方便我们定位错误,在开发中常常使用Junit搭配debug调试程序,更快的找到程序出错的地方。

在Selenium自动化测试阶段,Junit的使用频率很高。

当然也可以使用Log4j工具生成日志帮助我们调试程序,但这不是我们单元测试的内容了。



0 0