junit的简单用法

之前测试一个方法总要写一个main函数来调用,感觉既费事又有点low。今天来简单研究一下怎么使用junit来进行单元测试。

1. 依赖包

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>

2. 开始测试吧

例子1,使用@Test注解:

选中方法名test1--》右键--》Run As--》JUnit Test,哈哈,不用main方法也执行成功啦

import org.junit.Test;

public class TestJunit {

    @Test
    public void test1() {
        System.out.println("我的第一个junit的小例子...");
    }
}

例子2,使用Assert:

import org.junit.Test;
import org.junit.Assert;

public class TestJunit {

    @Test
    public void test2() {
        int val1 = 10;
        int val2 = 12;
        int sum = val1 + val2;
        // 使用Assert来把某个变量值和预期值进行比较
        // 和预期值不同时,到junit窗口去看错误栈吧
        Assert.assertEquals(sum, 21);
    }
}

例子3,使用@Before注解:

@Before一般用于实例化测试方法中需要用到的java对象,或链接数据库等情景。

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

public class TestJunit {

    Utils utils = null;

    @Before
    public void before() {
        utils = new Utils();
    }

    @Test
    public void test2() {
        int sum = utils.add(12, 13);
        Assert.assertEquals(sum, 25);
    }
}

class Utils {
    public int add(int num1, int num2) {
        return num1 + num2;
    }
}

例子4,使用@After注解:

一般用于关闭连接,关闭流等操作,此处就不提供例子啦。用法同@Before注解。

例子5,使用@Test预期值:

import org.junit.Before;
import org.junit.Test;

public class TestJunit {

    Utils utils = null;

    @Before
    public void before() {
        utils = new Utils();
    }

    @Test(expected = ArithmeticException.class)
    public void test() {
        utils.divide(4, 0);
    }
}

class Utils {

    public int divide(int num1, int num2) {
        return num1 / num2;
    }
}

注释:

a, 如果报错,可查看Junit窗口的错误栈信息,会给出预期值和实际值,以及报错信息。无论对错,总要来看一下执行结果吧。

b, 如果想一次测试所有方法,不要选中方法,选中类名--》右键--》Run As--》JUnit Test。

c, 类中不想使用Assert类来调用assertEquals方法了怎么办,直接静态引用Assert类的所有方法,"import static org.junit.Assert.*;"

junit4主要注解介绍:

@BeforeClass 全局只会执行一次,而且是第一个运行
@Before 在测试方法运行之前运行
@Test 测试方法
@After 在测试方法运行之后允许
@AfterClass 全局只会执行一次,而且是最后一个运行
@Ignore 忽略此方法

写的不好,只为自己做笔记,下面链接本园子一个相当棒的介绍Junit的文章。

文章:Java单元测试(Junit+Mock+代码覆盖率)

地址:http://www.cnblogs.com/AloneSword/p/4109407.html

原文地址:https://www.cnblogs.com/zj0208/p/6203719.html