JUnit自动化单元测试(三):各常用注解和测试函数详细讲解

@Test:将一个方法修饰成一个可测试的方法;只有@Test修饰之后,这个方法才会被JUnit执行。

@Test(expected=XXException.class):表示这个方法一定会抛出某个异常;如果没有抛出该异常则测试失败。

    //测试代码
    @Test(expected = ArithmeticException.class)
    public void testDiv() {
        int result = calcuate.div(6, 0); // 除法中,除数为0,抛出ArithmeticException
    }

@Test((timeout=XX):表示这个方法执行的超时时间,单位毫秒;如果这个方法在规定时内还没结果,则测试失败。

    //测试代码
    @Test(timeout = 3000)
    public void testTimeout () {
        while (true) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

@Before:会在每一个测试方法被运行前执行一次;一般用于初始化测试数据。注意:有多少个@Test修饰的方法就会执行多少次。

@After:会在每一个测试方法运行后被执行一次;一般用于注销测试数据。注意:有多少个@Test修饰的方法就会执行多少次。

@BeforeClass:它会在所有的方法运行前执行,static修饰;一般用于测试需要读取文件数据时。注意:不管有多少个@Test修饰的方法只执行一次。

@AfterClass:它会在所有的方法运行结束后执行,static修饰;一般用于断开文件连接。注意:不管有多少个@Test修饰的方法只执行一次。

@Ignore:所修饰的测试方法会被测试运行器忽略;当方法还没写完时可用,写好之后删掉@Ignore即可开始测试。

    //测试代码
    @Ignore
    @Test
    public void testIgnore () {
        System.out.println("我会被忽略,不会执行");
    }

@RunWith:可以更改测试运行器 org.junit.runner.Runner;当需要多个或自定义的运行器时用,下一篇具体讲解。

注解大致是就这么多,此外还有一些常用的断言函数:

AssertEquals:断言两个结果相等;
AssertArrayEquals:断言两个数组相等;
AssertNotEquals:断言两个结果不相等;
AssertSame:判断两个对象是否为同一个,不同于equals这里是使用“==”判断;
AssertTrue:断言结果为真;
AssertFalse:断言结果为假;
AssertNull:断言结果为空;
AssertNotNull:断言结果不为空;
AssertThat:使用Matcher做自定义的校验;
如果想了解更多的测试函数,请自行查阅Assert API,这里就不详细说明了。

猜你喜欢

转载自blog.csdn.net/u012882327/article/details/72625889