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

您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
JUnit簡(jiǎn)單使用教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2016/6/12 14:46:09 ] 推薦標(biāo)簽:單元測(cè)試 Junit 軟件測(cè)試工具

  Demo如下:
  @RunWith(Parameterized.class)
  public class SquareTest {
  private static Calculator calculator = new Calculator();
  private int param;//參數(shù)
  private int result;//期望值
  // 準(zhǔn)備數(shù)據(jù) 
  @Parameters  
  public static Collection data() {
  return Arrays.asList(new Object[][]{{2, 4},{0, 0},{-3, 9}});
  }
  //構(gòu)造函數(shù),對(duì)變量進(jìn)行初始化
  public SquareTest(int param, int result) {
  this.param = param;
  this.result = result;
  }
  @Test  
  public void square() {
  calculator.square(param);
  assertEquals(result, calculator.getResult());
  }
  }
  打包測(cè)試
  在一個(gè)項(xiàng)目中,只寫一個(gè)測(cè)試類是不可能的,我們會(huì)寫出很多很多個(gè)測(cè)試類。可是這些測(cè)試類必須一個(gè)一個(gè)的執(zhí)行,也是比較麻煩的事情。鑒于此,JUnit為我們提供了打包測(cè)試的功能,將所有需要運(yùn)行的測(cè)試類集中起來(lái),一次性的運(yùn)行完畢,大大的方便了我們的測(cè)試工作。具體代碼如下:
  @RunWith(Suite.class)
  @Suite.SuiteClasses({ CalculatorTest.class,SquareTest.class})
  public class AllCalculatorTests{
  }
  大家可以看到,這個(gè)功能也需要使用一個(gè)特殊的Runner,因此我們需要向@RunWith注解傳遞一個(gè)參數(shù)Suite.class。同時(shí),我們還需要另外一個(gè)注解@Suite.SuiteClasses,來(lái)表明這個(gè)類是一個(gè)打包測(cè)試類。我們把需要打包的類作為參數(shù)傳遞給該注解可以了。有了這兩個(gè)注解之后,已經(jīng)完整的表達(dá)了所有的含義,因此下面的類已經(jīng)無(wú)關(guān)緊要,隨便起一個(gè)類名,內(nèi)容全部為空既可。
  異常測(cè)試
  在JUnit 4之前,對(duì)錯(cuò)誤的測(cè)試,我們只能通過(guò)fail來(lái)產(chǎn)生一個(gè)錯(cuò)誤,并在try塊里面assertTrue(true)來(lái)測(cè)試。現(xiàn)在,可以通過(guò)@Test 注解中的expected屬性來(lái)測(cè)試異常。expected屬性的值是一個(gè)異常的類型。
  Demo如下:
  @Test(expected=ArithmeticException.class)
  public void testDivide() {
  new Calculator().divide(6, 0);
  }
  測(cè)試
  對(duì)于那些邏輯很復(fù)雜,循環(huán)嵌套比較深的程序,很有可能出現(xiàn)死循環(huán),因此一定要采取一些預(yù)防措施。測(cè)試是一個(gè)很好的解決方案。我們給這些測(cè)試方法設(shè)定一個(gè)執(zhí)行時(shí)間,超過(guò)了這個(gè)時(shí)間,他們會(huì)被系統(tǒng)強(qiáng)行終止,并且系統(tǒng)還會(huì)向你匯報(bào)該方法結(jié)束的原因是因?yàn)槌瑫r(shí),這樣你可以發(fā)現(xiàn)這些Bug了。要實(shí)現(xiàn)這一功能,只需要給@Test 注解加一個(gè)timeout屬性,該注解傳入了一個(gè)時(shí)間(毫秒)給測(cè)試方法,如果測(cè)試方法在指定的時(shí)間之內(nèi)沒(méi)有運(yùn)行完,則測(cè)試失敗。
  Demo如下:  
  @Test(timeout=1000)
  public void testDeathLoop() {
  new Calculator().deathLoop();
  }
  單元測(cè)試運(yùn)行結(jié)果:java.lang.Exception: test timed out after 1000 milliseconds
  at test.Calculator.deathLoop(Calculator.java:25)
  at test.CaculatorTest.testDeathLoop(CaculatorTest.java:26)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  …………………………

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 好男人在线社区www免费看 | 欧美成人免费一区在线播放 | 57pao国产成视频免费播放 | 欧美国产在线观看 | 欧美午夜性春猛xxxx | 亚洲午夜成激人情在线影院 | 在线国产视频 | 看全色黄大色黄大片免责看 | 久久午夜宅男免费网站 | 中文字幕35页 | 亚洲欧美日韩国产精品网 | 亚洲日本香蕉 | 日韩三级在线免费观看 | 国产精品视频分类一区 | 在线免费观看中文字幕 | 国产日韩欧美亚洲 | 色网在线视频 | 在线99视频 | 日韩欧美国内 | 国产精品免费视频一区二区三区 | 一级a毛片免费观看 | 91亚洲欧美 | 777欧美午夜精品影院 | 中文字幕2区 | 激情欧美一区二区三区 | 你懂的视频在线播放 | 欧美在线播放 | 在线中文字幕第一页 | 日韩激情文学 | 天天躁夜夜躁狠狠躁2021a | 国产女人伦码一区二区三区不卡 | 国产精品一区在线观看 | 精品国产91乱码一区二区三区 | 日本黄色视屏 | 午夜视频久久 | 老司机免费精品视频 | 国产一级做a爰片在线看 | 第一区免费在线观看 | 丁香六月婷婷综合 | 国产精品视频成人 | 成人a在线 |