测试分类:
1.黑盒测试:不需要写代码,给出输入值,看程序能否输出期望值。
2.白盒测试:需要写代码,关注程序具体执行流程。
Junit使用:白盒测试
废话不多说,直接附上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package itcast;
public class Calculator{ public int add(int a,int b){ return a+b; }
public int sub(int a,int b){ return a-b; } }
|
当然我们也可以使用创建对象来看,但是就不知道是否是执行正确的,并且一个主方法只可以运行一个,就很麻烦,因此我们就用单元测试。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package itcast;
import java.util.Calendar;
public class CalculatorTest{ public static void main (String[] args) { Calculator C=new Calculator(); int result=C.sub(1,1); System.out.println(result); } }
|
测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| package test;
import itcast.Calculator; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test;
public class CalculatorTest{
@Before public void init(){ System.out.println("执行init...."); }
@After public void close(){ System.out.println("执行close...."); }
@Test public void testAdd(){ Calculator c= new Calculator(); int result=c.add(1,2); System.out.println(result); Assert.assertEquals(3,result);
} @Test public void testSub(){ Calculator c= new Calculator(); int result=c.sub(1,2); System.out.println(result); System.out.println("执行testSub"); Assert.assertEquals(-1,result); } }
|
说明:单元测试中主要就是给方法加@Test,然后倒入依赖环境,其次代码中用到了断言;
判定结果(断言):
红色:失败
绿色:成功
代码:
1
| Assert.assertEquals(期望结果,运算结果);
|
补充:
@Before:修饰的方法会在测试方法之前被自动执行;
@After:修饰的方法会在测试方法之后被自动执行;
注意:无论测试方法是否会出异常,这两个方法都会被执行。