看完这篇文章,不要再说自己不会单元测试了 ! ! !
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工具生成日志帮助我们调试程序,但这不是我们单元测试的内容了。