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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit內(nèi)部解密
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/4/11 13:36:09 ] 推薦標(biāo)簽:

  Junit 內(nèi)部解密之: TestResult + TestListener + Assert

  之前我們看到了Test接口里面的run方法有個TestResult的參數(shù),不錯,這個類是用來收集測試結(jié)果的,是收集TestSuite的運行結(jié)果,所以一般情況下,一個TestSuite對應(yīng)一個TestResult. TestResult存儲了所有測試的詳細情況,是通過還是失敗。

  如果是失。篔unit會創(chuàng)建一個TestFailure對象,并保存在TestResult中。

  這里知道了TestResult的作用,這種做法也會引入另外一個設(shè)計模式。

  Java設(shè)計模式:Collecting Parameter模式

  定義:當(dāng)你需要從幾個方法中收集結(jié)果時,你應(yīng)當(dāng)給方法增加一個參數(shù),并傳遞一個會替你收集參數(shù)的對象。

  這里TestResult類是起到了這個作用。但是我們知道TestResult是收集很多運行的Test的運行結(jié)果,這里需要對于這些運行結(jié)果進行管理,則TestResult類定義了如下相關(guān)的方法:

  public synchronized void addError(Test test, Throwable t) 新增一個錯誤到ArrayList。

  public synchronized void addFailure(Test test, AssertionFailedError t) 新增一個失敗到ArrayList。

  public synchronized void addListener(TestListener listener) 在一個test中注冊一個監(jiān)聽器到ArrayList,這個監(jiān)聽器是TestListener,實現(xiàn)類是TestRunner。

  public synchronized void removeListener(TestListener listener) 從一個test中取消這個監(jiān)聽器。

  private synchronized List cloneListeners() 克隆一批監(jiān)聽器。

  我們已經(jīng)知道了TestResult的作用,那么TestListener的作用又是什么呢?在Run一個測試用例的時候有很多的結(jié)果,這時由TestListener去觀察這個運行的結(jié)果,并且負責(zé)報告這些運行信息。

  TestListener是個接口,一般由Test Runner,很多特定的Junit擴展也實現(xiàn)了這個接口,我們來看下這個接口里面定義了哪些方法:

  public void addError(Test test, Throwable t); 發(fā)送錯誤的時候才被調(diào)用。

  public void addFailure(Test test, AssertionFailedError t); 失敗的時候才被調(diào)用。

  public void endTest(Test test); 測試結(jié)束時被調(diào)用。

  public void startTest(Test test); 測試開始時被調(diào)用。

  由于定義了這個TestListener接口和實現(xiàn)類TestRunner的作用都看到了,特別是給擴展Junit提供了新的實現(xiàn)類的方式,這樣的做法引出了一個設(shè)計模式。

  Java設(shè)計模式:Observer模式

  定義:在對象之間定義了一個一對多的依賴關(guān)系,這樣當(dāng)一個對象改變了狀態(tài),那么所有依賴于它的對象都會自動收到通知且更新。目前Junit框架的TestRunner以TestListener的身份注冊到TestResult。

  我們在寫testcase的時候,都會用到Assert方法去check運行結(jié)果,這時候的Assert方法是繼承了Junit的TestCase類,但是你如果還記得TestCase類的聲明的話,那是TestCase不僅僅實現(xiàn)了Test接口,而且也繼承了Assert類,其實這些Assert方法是Assert類中實現(xiàn)的。

  Junit的Assert類中總共有38個Assert方法,但很多都是不停的重載,其實只有8個核心方法:

  assertTure; assertFalse; assertEquals; assertNotEquals; assertNull; assertSame; assertNotSame; fail(讓測試失敗,并給出指定的信息)

  一般要用到拋出message的都會用到fail方法。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 1769国产精品视频免费观看 | 国产精品黄在线观看免费网站 | 国产精品免费aⅴ片在线观看 | 久爱午夜精品免费视频 | 色yeye成人免费视频 | 91精品导航在线观看 | 欧美成a人片免费看久久 | 精品欧美中国福利第一导航 | 久草免费福利视频 | 天天插天天干天天射 | 午夜网站在线观看 | h片在线| 成人免费观看视频高清视频 | 97国产品香蕉在线观看 | 久久久亚洲天堂 | 亚洲乱人伦精品图片 | 天天操天天操天天 | 欧美日韩一区在线观看 | 久久精品国产精品亚洲精品 | 国产精品午夜波多野结衣性色 | 成人羞羞视频免费看看 | 亚洲h在线观看 | 欧美亚洲欧美日韩中文二区 | 成人精品免费网站 | 日本乱仑| 黄色香蕉视频 | 成年女人免费又黄又爽视频 | 男女猛烈无遮挡性视频 | 看黄网站在线看 | 久久精品国产曰本波多野结衣 | 日韩综合在线 | 欧美日韩免费在线视频 | 另类视频在线观看 | 午夜网站在线观看免费网址免费 | 色黄网站成年女人色毛片 | 岛国毛片一级一级特级毛片 | 欧美成人h精品网站 | 天天舔天天色 | 最近2019免费中文字幕6 | 在线视频天堂 | 亚洲欧美日产综合一区二区三区 |