优秀的软件不是开发出来的,而是测试出来的。
单元测试
软件测试分类:
黑盒测试
白盒测试
黑盒测试:测试工程师
黑盒测试又称功能测试,主要检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,进行测试,主要针对软件界面和软件功能进行测试。
白盒测试:开发工程师
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,主要检测程序内部逻辑是否正常
在测试中测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。按照程序内部的结构进行测试
这一方法是把测试对象看作一个打开的盒子,测试人员清楚盒子内部的东西以及里面是如何运作的。
测试先行的思想
在你不知道如何测试代码前,就不要写代码去完成功能--------->测试先行。
单元测试Junit就属于白盒测试
Java的单元测试:Junit
- junit3.x 针对于Java5之前的版本,没有注解,得按照规范来写测试。
- junit4.x 针对于Java5以及之后的版本,使用注解,推荐.
- junit5.x
- 使用步骤
1、把junit4.x的测试jar,添加到该项目中来;
2、定义一个测试类(约定俗称的规则,非强制要求)
测试类的名字: XxxTest,例如要测试MyMath类型,一般定义测试类的类名为MyMathTest
- 在MyMathTest中编写测试方法
例如要测试MyMath中的add方法
import org.junit.Test; public class MyMathTest { @Test public void testAdd() throws Exception{ } } |
注意:
方法是public修饰的,无返回的,该方法上必须贴有@Test标签。
- 选择某一个测试方法,鼠标右键选择 [run as junit],或则选中测试类,表示测试该类中所有的测试方法。
- 运行结果查看
表示测试正确
表示测试错误,会给出错误的堆栈信息
常见注解
Junit4.x基于Java5开始的版本,支持注解。
常用注解:
@Test:要执行的测试方法
@Before 每次执行测试方法之前都会执行
@After 每次执行测试方法之后都会执行
@BeforeClass 在所有的Before方法之前执行,只在最初执行一次。只能修饰静态方法
@AfterClass 在所有的After方法之后执行,只在最后执行一次。 只能修饰静态方法
执行顺序: BeforeClass->(Before->Test-After多个测试方法)-->AfterClass