单元测试: junit java unit test java的单元测试
junit是一个大家公认的且广泛使用的测试框架
测试的功能是由junit框架提供的,要使用这个框架
就必须引出junit测试框架的jar包
程序员需要测试程序员自己写方法是否正确,所有需要单元测试
单元测试的版本:
- junit3
- junit4
- junit5
单元测试中的名词:
断言 assert:
断:断定,判定
言:动词,表达的意思, 名词,话语或语言的意思
断言就是能够清晰准确表达一个结果是正确的
junit3
- 测试类放在test源代码文件夹中(source folder)
- 测试类必须继承自TestCase类
junit.framework.TestCase
- 测试类中的方法名称,必须是test为开头方法
比如: public void testMethod(){}
- 测试类中重写protected void setUp()方法
此方法是在执行任何一个测试方法的时候都要先调用setUp方法
setUp方法执行完毕后,才执行测试方法中的内容
setUp方法适合在执行测试方法前做初始化工作
junit4(建议使用)
-
测试类放在test源代码文件夹中(source folder)
-
在测试方法的前面添加一个注解@Test注解,测试方法命名任意
但建议以test开头的方法 -
如果在某个测试方法前添加一个注解@Before,那么此方法就在
任何测试方法前执行,一般做初始化工作
例
public class Demo {
public int sum(int a,int b){
return a+b;
}
}
测试
import org.junit.Before;
import org.junit.Test;
import junit.framework.Assert;
public class TestClass {
@Before //在任何测试方法之前执行
public void beforeMethod(){
System.out.println("before");
}
@Test
public void testMethod1(){
System.out.println("AAAAA");
}
@Test
public void testMethod2(){
//a和b的数据由甲方提供,甲方还要提供基于a和b的数据得出的结果expected数据
int a=10;
int b=20;
int expected=30;
Demo demo=new Demo();
//基于甲方提供a和b的数据算出的真实值
int actual=demo.sum(a, b);
System.out.println(actual);
Assert.assertEquals(expected, actual);//断言
}
}
执行过程:
双击需要测试的方法名,右键单击Run As --> JUnit Test
- 若程序员写的方法正确:则
- 若程序错误 :expected=31