Junit单元测试
一、单元测试是什么?
单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。单元测试是由程序员自己来完成,最终受益的也是程序员自己。
通俗来说,就是写完代码后对代码进行检测看看能不能达到预期的效果。而对自己所写代码的单元测试就像一个电视机工厂在进行电视机组装时,对每个元件的检测。
二、 黑、白盒测试
Junit测试是白盒测试中的一种。
黑盒测试:
黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。采用这种测试方法,测试工程师把测试对象看作一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的《需求规格说明书》,检查程序的功能是否符合它的功能说明。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。黑盒测试方法能更好、更真实地从用户角度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及验收测试等阶段中,黑盒测试都发挥着重要作用,尤其在系统测试和确认测试中,其作用是其他测试方法无法取代的。
直白的说,黑盒测试就是程序员不需要写代码,直接给一些输入值,看程序能否输出所期望的值。非常简单。
白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
直白的说,白盒测试就是需要程序员写代码,并且关注程序具体的执行流程的一种测试。
3、 Junit的使用
JUnit是一个Java语言的单元测试框架。
使用步骤:
这里以一个计算器程序为例。
package junit;
public class Calculator {
public int add (int a,int b){
return a+b;
}
public int sub(int a,int b){
return a-b;
}
}
1、 定义一个测试类(测试用例)
建议:
a).测试类名:被测试类名+Test
b).包名:xxx.xxx.xx.test
2、 定义测试方法
建议:
a).方法名:test+测试方法名
b).返回值:void
c).参数列表:空参
3、 给测试方法加@Test(注解)
? ? 因为只有在main方法才能够执行,而我们的测试类没有用到main方法,所以要加注解
4、 导入junit的依赖环境(alt+enter)
具体代码:
package test;
import junit.Calculator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd(){
Calculator c = new Calculator();
int result = c.add(1,2);
Assert.assertEquals(3,result);
}
}
5、 结果判断:
? 若执行结果为红色则失败,即程序有问题 ? 若执行结果为绿则成功
!!!注意:在测试时不直接输出结果,因为当你的程序编写时是有问题的,有时在直接输出结果时是没有办法通过这个判断的,例如在Calculator的add方法中,我的代码是return a-b,此时,运行测试类的结果是绿色的,也就是说我们并没有通过测试方法来发现程序问题,也就没有达到测试的效果。因此在测试类中采用断言。
|