java使用junit4,Java:JUnit4使用詳解

對於Junit的總是一知半解不太懂,現在認真梳理一下;

此次針對的是Junit4版本,注解也是在Junit4版本才有的,之前的版本並無注解功能。而注解開發基本上被認為是一種優秀的設計,所以我們寫單元測試用例時,盡可能地去了解並使用注解。

@Test:使用該注解的方法為測試方法,自動運行時能夠識別並被執行

包含兩個參數:expected=XXXException.class 期望出現的異常

timeout=xxx 設定程序運行的超時時間

@Ignore:被忽略的測試方法

@Before:在每個測試方法之前運行

@After: 在每個測試方法之后運行

@BeforeClass:在所有測試開始之前運行

@AfterClass:在所有測試開始之后運行

注意:

(1) @Before與@BeforeClass的區別

@Before會加在每個方法前執行,即有幾個@Test就會執行幾遍。

@BeforeClass 只在所有測試之前執行,只會執行一次。並且@BeforeClass修飾的方法必須是公有的靜態方法(public static )。

@After和@AfterClass也類似

(2)每個測試類中這四個注解不能重復使用,一個方法只能從這四個注解中挑選其中一個。

重點:

(3)如果不希望某個方法執行:

@Ignore() 可以標注不參與測試的測試方法。當然也可以通過去除注解

@Test 來達到這個目的,但去除注解

@Test 會令到eclipse的JUnit View中無法顯示該測試方法。

比如:

package gc;

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、付费专栏及课程。

余额充值