JUnit 4 常用的几个annotation 介绍

★ @Before:初始化方法,在任何一个测试执行之前必须执行的代码;

★ @After:释放资源,在任何测试执行之后需要进行的收尾工作;

★ @Test:测试方法,表明这是一个测试方法。对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一个异常。至于方法内该写些什么,那就要看你需要测试些什么了;在这里可以测试期望异常和超时时间,如 @Test(timeout = 100),我们给测试函数设定一个执行时间,超过了这个时间(100毫秒),它们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。

★ @Ignore:忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试”;这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。

★ @BeforeClass:针对所有测试,只执行一次,且必须为static void;

★ @AfterClass:针对所有测试,只执行一次,且必须为static void;

一个Junit4的单元测试用例执行顺序为:@BeforeClass –> @Before –> @Test –> @After –>@AfterClass;

每一个测试方法的调用顺序为:@Before –> @Test –> @After。

举例:

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

public class JUnit4Test {
    @Before
    public void before() {
        System.out.println("@Before");
    }
    @Test
    public void test() {
        System.out.println("@Test");
        assertEquals(5 + 5, 10);
    }
    @Ignore
    @Test
    public void testIgnore() {
        System.out.println("@Ignore");
    }
    @Test(timeout = 50)
    public void testTimeout() {
        System.out.println("@Test(timeout = 50)");
        assertEquals(5 + 5, 10);
    }
    @Test(expected = ArithmeticException.class)
        public void testExpected() {
        System.out.println("@Test(expected = Exception.class)");
        throw new ArithmeticException();
    }
    @After
    public void after() {
        System.out.println("@After");
    }
    @BeforeClass
    public static void beforeClass() {
        System.out.println("@BeforeClass");
    };
    @AfterClass
    public static void afterClass() {
        System.out.println("@AfterClass");
    };
};
结果:

@BeforeClass
@Before
@Test(timeout = 50)
@After
@Before
@Test(expected = Exception.class)
@After
@Before
@Test
@After
@AfterClass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值