您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit4.12 入門實(shí)例
作者:Devin 發(fā)布時(shí)間:[ 2016/10/12 14:37:42 ] 推薦標(biāo)簽:單元測試 Junit

  項(xiàng)目工程基于Idea IDE創(chuàng)建,其對(duì)JUnit對(duì)支持非常不錯(cuò),寫單元測試類也非常方便,直接使用快捷鍵Ctrl+Shift+T即可自動(dòng)生成相應(yīng)的單元測試類模板,使用快捷鍵Alt+Insert可直接添加新增的單元測試方法;另外本項(xiàng)目使用Gradle進(jìn)行依賴管理。
  為什么做單元測試:
  1.幫助理解需求
  單元測試應(yīng)該反映Use Case,把被測單元當(dāng)成黑盒測試其外部行為。
  2.提高實(shí)現(xiàn)質(zhì)量
  單元測試不保證程序做正確的事,但能幫助保證程序正確地做事,從而提高實(shí)現(xiàn)質(zhì)量。
  3.測試成本低
  相比集成測試、驗(yàn)收測試,單元測試所依賴的外部環(huán)境少,自動(dòng)化程度高,時(shí)間短,節(jié)約了測試成本。
  4.反饋速度快
  單元測試提供快速反饋,把bug消滅在開發(fā)階段,減少問題流到集成測試、驗(yàn)收測試和用戶,降低了軟件質(zhì)量控制的成本。
  5.利于重構(gòu)
  由于有單元測試作為回歸測試用例,有助于預(yù)防在重構(gòu)過程中引入bug。
  6.文檔作用
  單元測試提供了被測單元的使用場景,起到了使用文檔的作用。
  7.對(duì)設(shè)計(jì)的反饋
  一個(gè)模塊很難進(jìn)行單元測試通常是不良設(shè)計(jì)的信號(hào),單元測試可以反過來指導(dǎo)設(shè)計(jì)出高內(nèi)聚、低耦合的模塊。
  JUnit簡介
  JUnit 是一個(gè) Java 編程語言的單元測試框架。JUnit 在測試驅(qū)動(dòng)的開發(fā)方面有很重要的發(fā)展,是起源于 JUnit 的一個(gè)統(tǒng)稱為 xUnit 的單元測試框架之一。
  單元測試規(guī)范
  1.單元測試類后面加Test;
  2.測試方法使用@Test標(biāo)注;
  3.測試方法名之前加test;
  4.所有測試方法返回類型必須為void且無參數(shù);
  5.每個(gè)測試方法之間相互獨(dú)立;
  JUnit4常用注解
  @Test:把一個(gè)方法標(biāo)記為測試方法
  它有兩個(gè)常用屬性:
  1.excepted屬性是用來測試異常;
  2.timeout用來測試性能的,是測試一個(gè)方法能不能在規(guī)定時(shí)間內(nèi)完成;
  也可使用@Rule規(guī)則來規(guī)定測試類中的所有方法的超時(shí)時(shí)間,如果類中的任意一個(gè)方法執(zhí)行時(shí)間超過了在Timeout規(guī)則中規(guī)定的值,測試方法將拋出異常,測試結(jié)果為失。ǔ瑫r(shí)參數(shù)是以毫秒記)。如:
@Rule
public Timeout timeout = new Timeout(1000);
@Before:每一個(gè)測試方法執(zhí)行前自動(dòng)調(diào)用一次;
@After:每一個(gè)測試方法執(zhí)行完自動(dòng)調(diào)用一次;
@BeforeClass:所有測試方法執(zhí)行前執(zhí)行一次,在測試類還沒有實(shí)例化已經(jīng)被加載,所以用static修飾;
@AfterClass:所有測試方法執(zhí)行完執(zhí)行一次,在測試類還沒有實(shí)例化已經(jīng)被加載,所以用static修飾;
@Ignore:禁止執(zhí)行junit測試類的某些或者全部測試方法,應(yīng)用在方法或類上;
public class AnnotationTest {
int i;
public AnnotationTest(){
System.out.println("構(gòu)造方法");
}
@BeforeClass
public static void setUpBeforClass(){
System.out.println("BeforClass");
}
@AfterClass
public static void tearDownAfterClass(){
System.out.println("AfterClass");
}
@Before
public void setUp(){
System.out.println("Before");
}
@After
public void tearDown(){
System.out.println("After");
}
@Test
public void test1(){
System.out.println("Test1");
System.out.println("i="+i++);
}
@Test
public void test2(){
System.out.println("Test2");
System.out.println("i="+i++);
}
@Ignore
public void test3(){
System.out.println("Test3");
}
}
  輸出結(jié)果:
  BeforClass
  構(gòu)造方法
  Before
  Test2
  i=0
  After
  AfterClass

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd