Java中junit单元测试

189 阅读2分钟

在junit单元测试中有一个Test注解,该注解下的方法相当于main方法一样,可以直接运行,而且在一个类中可以写多个Test注解,方便于对代码的测试,对于该测试方法,如果执行成功,则会有绿色对勾的提示,否则会出现红色叉叉

在junit下还有两个注解比较常用,一个是Before注解,该注解下的方法会在程序执行一开始就被执行,相当于初始化,另一个是After注解,该注解是在程序执行最后被执行,相当于释放资源

在这里我以一个计算器的例子来进行演示,首先写一个Cal计算器类,里面有两个方法,分别是加法和减法

public class Cal {
    public int add(int a,int b) {
        return a + b;
    }

    public int sub(int a,int b){
        return a - b;
    }
}

当我们想要测试上面的方法是否正确的时候我们可以再新创建一个类

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class CalTest {
    @Before
    public void init(){
        System.out.println("init...");
    }

    @After
    public void close(){
        System.out.println("close...");
    }

    @Test
    public void testAdd(){
        Cal c = new Cal();
        int result = c.add(1,2);
        //断言操作处理结果,其中第一个参数是我们的预期参数,第二个是运行结果
        Assert.assertEquals(3,result);
        System.out.println("testAdd...");
    }

    @Test
    public void testSub(){
        Cal c = new Cal();
        int result = c.sub(1,2);
        //在这里以一个错误的结果去测试,看看运行结果是什么
        Assert.assertEquals(2,result);
        System.out.println("testSub...");
    }
}

在该类的Test注解方法下进行测试,我们测试一个正确的例子,测试一个错误的例子

第一个加法是正确的,结果如下

第二个减法运行结果是错误的,如下

当然,从上面可以看出,不管运行结果怎么样,Before注解和After注解都执行了