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

猜你喜欢

转载自www.cnblogs.com/seliote/p/9651843.html