亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit入門實(shí)例
作者:xwdreamer 發(fā)布時間:[ 2016/11/9 14:08:38 ] 推薦標(biāo)簽:單元測試 Junit

  1.學(xué)習(xí)摘要
  看《重構(gòu)-改善既有代碼的設(shè)計(jì)》這本書的時候,里面提到測試環(huán)境對于重構(gòu)的重要性,想到之前在編寫代碼的時候都是通過System.out和alert來做測試,非常麻煩,而且不夠正規(guī),對于即將步入工作的人來說,一個正規(guī)的寫代碼習(xí)慣和測試習(xí)慣是非常重要的,因此我覺得好好學(xué)學(xué)如何使用JUnit。
  在JUnit和單元測試入門簡介一文中提到“JUnit框架是一個典型的Composite模式:TestSuite可以容納任何派生自Test的對象;當(dāng)調(diào)用TestSuite對象的run()方法是,會遍歷自己容納的對象,逐個調(diào)用它們的run()方法”。
  這又讓我想起自己前段時間在讀的《研磨設(shè)計(jì)模式》這本書,讀了前面的九章,寫了一些博客,但是還沒有整理,不過大多也忘了。可能自己沒有真正理解吧。其實(shí),一時的理解,如果沒有在實(shí)際項(xiàng)目中應(yīng)用,還是很容易遺忘的。希望自己能在重構(gòu)項(xiàng)目的時候多用一些設(shè)計(jì)模式上的內(nèi)容。《研磨設(shè)計(jì)模式》這本書中的第15章講的是組合模式(Composite),有空了去看一看。
  在使用eclipse進(jìn)行junit的時候,添加junit包才發(fā)現(xiàn)有junit3和junit4兩個版本,這兩者的區(qū)別可以參考JUnit測試框架之JUnit3和JUnit4使用區(qū)別的總結(jié)。
  2.入門實(shí)例
  步驟1:創(chuàng)建待測試類

  首先新建一個項(xiàng)目叫JUnit_Test,我們編寫一個Calculator類,這是一個能夠簡單實(shí)現(xiàn)加減乘除、平方、開方的計(jì)算器類,然后對這些功能進(jìn)行單元測試。這個類并不是很完美,我們故意保留了一些Bug用于演示,這些Bug在注釋中都有說明。該類代碼如下:
  
  package xw.calculator;
  public class Calculator {
  private static int result; // 靜態(tài)變量,用于存儲運(yùn)行結(jié)果
  public void add(int n) {
  result = result + n;
  }
  public void substract(int n) {
  result = result - 1; // Bug: 正確的應(yīng)該是 result =result-n
  }
  public void multiply(int n) {
  } // 此方法尚未寫好
  public void divide(int n) {
  result = result / n;
  }
  public void square(int n) {
  result = n * n;
  }
  public void squareRoot(int n) {
  for (;;)
  ; // Bug : 死循環(huán)
  }
  public void clear() { // 將結(jié)果清零
  result = 0;
  }
  public int getResult() {
  return result;
  }
  }
  
  步驟2:在eclipse中為項(xiàng)目添加JUnit環(huán)境
  右鍵JUnit_Test項(xiàng)目,在build path中“add library”,添加JUnit,如下圖所示:

  步驟3:創(chuàng)建測試類
  右鍵Calculator類,選擇“new",創(chuàng)建JUnit Test Case


  步驟4:修改測試用例代碼
  測試用例代碼如下:
  
  package xw.calculatortest;
  import static org.junit.Assert.*;
  import org.junit.Before;
  import org.junit.Ignore;
  import org.junit.Test;
  import xw.calculator.Calculator;
  public class CalculatorTest {
  private static Calculator calculator = new Calculator();
  // 復(fù)原操作,表明對每個Test方法測試以后都會進(jìn)行這個方法操作。
  @Before
  public void setUp() throws Exception {
  calculator.clear();// 結(jié)果清零
  }
  @Test
  public void testAdd() {
  // fail("Not yet implemented");
  calculator.add(2);
  calculator.add(3);
  assertEquals(5, calculator.getResult());
  }
  @Test
  public void testSubstract() {
  // fail("Not yet implemented");
  calculator.add(10);
  calculator.substract(2);
  assertEquals(8, calculator.getResult());
  }
  // 忽略標(biāo)注,表明這個方法功能還沒有實(shí)現(xiàn)
  @Ignore("Multiply() Not yet implemented")
  @Test
  public void testMultiply() {
  fail("Not yet implemented");
  }
  @Test
  public void testDivide() {
  // fail("Not yet implemented");
  calculator.add(8);
  calculator.divide(2);
  assertEquals(4, calculator.getResult());
  }
  // Timeout參數(shù)表明了你要設(shè)定的時間,單位為毫秒,因此1000代表1秒。
  @Test(timeout = 1000)
  public void squareRoot() {
  calculator.squareRoot(4);
  assertEquals(2, calculator.getResult());
  }
  /**
  * square1/square2/square3分別用來測試正數(shù),0,復(fù)數(shù)的平方
  */
  @Test
  public void square1() {
  calculator.square(2);
  assertEquals(4, calculator.getResult());
  }
  @Test
  public void square2() {
  calculator.square(0);
  assertEquals(0, calculator.getResult());
  }
  @Test
  public void square3() {
  calculator.square(-3);
  assertEquals(9, calculator.getResult());
  }
  }
  
  參數(shù)化測試與運(yùn)行器(Runner)
  考慮一種場景,如果要單獨(dú)測試正數(shù)的平方,0的平方以及負(fù)數(shù)的平方,那么要創(chuàng)建三個測試方法來進(jìn)行測試,這樣會顯得特別繁瑣,如步驟4中后的三個測試方法square1()、square2()和square3()。JUnit考慮到了這種情況,提出了參數(shù)化測試方法。這個時候運(yùn)行器也不是默認(rèn)的運(yùn)行器,而是通過@RunWith(Parameterized.class)來標(biāo)注。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 免费精品国偷自产在线读大二 | 99福利影院 | 黄色3级视频 | 国产精品单位女同事在线 | bbbb成人毛片免费看 | 亚洲国产最新在线一区二区 | 中文字幕 制服诱惑 | 欧美怡红院免费全视频 | 成人午夜影院 | 韩国理论午夜 | 国模啪啪一区二区三区 | 久久天堂| 久久最新网址 | 最色成人网| 花蝴蝶亚洲一区二区三区 | 无遮挡h肉动漫在线播放内衣 | 国产日韩欧美二区 | 一个人免费观看视频www | 无遮挡高清一级毛片免费 | 精品欧美日韩一区二区 | 国产成人h片视频在线观看 国产成人lu在线视频 | 怡红院成人永久免费看 | 最新国产午夜精品视频不卡 | 日韩久久中文字幕 | 黄色在线观看网址 | 日韩欧美一及在线播放 | 波多野吉衣中文字幕 | 五月天激情婷婷大综合 | 韩日视频在线观看 | 国产91在线看 | 欧美图片在线视频 | 免费午夜视频在线观看 | 夜夜澡人人爽人人喊_欧美 夜夜躁天天躁很很躁 | 看全色黄大色黄大片毛片 | 久久天天躁狠狠躁夜夜不卡 | 国产成人高清亚洲一区91 | 最近的中文字幕在线看 | 国产精品视频免费一区二区三区 | 国产在线91精品天天更新 | 国产日韩精品一区在线观看播放 | 日韩视频在线观看一区二区 |