Java 的单元测试

Posted seliote

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 的单元测试相关的知识,希望对你有一定的参考价值。

// src/main/java/club/seliote/App.java
package club.seliote;

public class App 
{
    public int add(int first, int second) {
        return first + second;
    }

    public int exception() {
        throw new NullPointerException();
    }
}
// src/test/java/club/seliote/AppTest.java
package club.seliote;

import org.junit.*;

/**
 * Unit test for simple App.
 */
public class AppTest 
{
    /**
     * 用于保存 @Before 生成的数据
     */
    private App app = null;

    /**
     * 每个测试方法执行前都需要重新构造对象
     */
    public AppTest() {
        super();
        System.out.println("#Constructor");
    }

    /**
     * static 方法,测试类中第一个执行
     */
    @BeforeClass
    public static void beforeClassTest() {
        System.out.println("#BeforeClass");
    }

    /**
     * 初始化一些每个 @Test 方法都会用到的数据
     */
    @Before
    public void beforeTest() {
        this.app = new App();
        System.out.println("#Before");
    }

    @Test
    public void testAdd() {
        System.out.println("#TestAdd");
        Assert.assertEquals(6, this.app.add(3, 3));
        if (8 != this.app.add(1, 7)) {
            Assert.fail("Something error!");
        }
    }

    /**
     * 超时测试
     */
    @Test(timeout = 100)
    public void testTimeout() {
        Math.pow(10, 100);
    }

    /**
     * 异常测试
     */
    @Test(expected = NullPointerException.class)
    public void testIO() {
        System.out.println("#TestException");
        this.app.exception();
    }

    @After
    public void afterTest() {
        this.app = null;
        System.out.println("#After");
    }

    @AfterClass
    public static void afterClassTest() {
        System.out.println("#AfterClass");
    }
}

// output :
// #BeforeClass
// #Constructor
// #Before
// #After
// #Constructor
// #Before
// #TestAdd
// #After
// #Constructor
// #Before
// #TestException
// #After
// #AfterClass

以上是关于Java 的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

四则运算单元测试

词频统计单元测试

单元测试很棒,但是

第1129期对vue.js单文件(.vue)进行单元测试

JUnit单元测试

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