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

您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
JUNIT源碼探秘系列(下)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/16 14:34:04 ] 推薦標(biāo)簽:

特別注意Client中的

Command command = new ConcreteCommand(receiver);

Invoker invoker = new Invoker(command);

個(gè)人理解,這兩塊大的區(qū)別是Invoker調(diào)用的是一個(gè)借口類(當(dāng)然在實(shí)際中可以也可以不是),在識(shí)別Invoker時(shí)注意調(diào)用的對(duì)象是否是一個(gè)接口對(duì)象。兩外,命令模式各個(gè)角色之間的關(guān)系如下圖所示。

Client和Invoker之間是一種弱關(guān)聯(lián)的依賴關(guān)系。

在Junit為什么要適用命令模式呢?Junit中使用命令模式有什么好處呢?

先看看在Junit中為什么要使用命令模式,在這我們先看看Junit的執(zhí)行過(guò)程的時(shí)序圖,啟動(dòng)一次執(zhí)行時(shí),TestRunner先解析加載后,然后通過(guò)TestSuite、TestCase中的run方法繼續(xù)解析成一個(gè)個(gè)Junit的測(cè)試方法(testcase),緊接著通過(guò)TestResult調(diào)用TestCase中的執(zhí)行方法,通過(guò)TestCase中的runBare方法終調(diào)我們自己寫(xiě)的測(cè)試代碼(含有testXXX的測(cè)試方法)。

 通過(guò)對(duì)Junit代碼的分析,TestRunner相當(dāng)于命令模式中的客戶(Client)角色,在TestRunner中main方法和doRun方法中的實(shí)現(xiàn)和命令模式中的Client的代碼實(shí)現(xiàn)非常相似,具體如下

public static void main(String args[]) {

      TestRunner aTestRunner= new TestRunner();

      try {

         TestResult r= aTestRunner.start(args);

//在start方法通過(guò)調(diào)用返回doRun方法

         } catch(Exception e) {

         System.err.println(e.getMessage());

         System.exit(EXCEPTION_EXIT);

      }

   }

   public TestResult doRun(Test suite, boolean wait) {

      TestResult result= createTestResult();

      result.addListener(fPrinter);

      long startTime= System.currentTimeMillis();

      suite.run(result);

      long endTime= System.currentTimeMillis();

      long runTime= endTime-startTime;

      fPrinter.print(result, runTime);

      pause(wait);

      return result;

}

而命令(Command)角色是Junit中的TestCase(繼承Test)。

具體命令(ConcreteCommand)是我們所寫(xiě)的測(cè)試方法,比如testXXX等所在的類

具體請(qǐng)求者(Invoker)則是TestResult,通過(guò)TestResult調(diào)用run方法,進(jìn)而調(diào)用執(zhí)行方法,

在Junit真正執(zhí)行調(diào)用測(cè)試用例testcase則是在Junit中TestCase真正實(shí)現(xiàn)后的執(zhí)行,所有說(shuō)接收者(Receiver)接收者是TestCase,TestCase在命令模式中充當(dāng)了多個(gè)角色,當(dāng)然這塊也可以在加一個(gè)類TestRun實(shí)現(xiàn)測(cè)試測(cè)試執(zhí)行。但不知作者為什么要直接在TestCase中實(shí)現(xiàn)測(cè)試代碼的終執(zhí)行?

后我們?cè)僬f(shuō)說(shuō)在這塊用命令模式有什么好處?
我理解在這塊大的好處是,解耦了具體命令者(我們自己寫(xiě)的testXXX方法)和TestCase,兩外,實(shí)現(xiàn)了測(cè)試執(zhí)行者TestRUnner和命令接受者TestResult的耦合,是命令請(qǐng)求和命令執(zhí)行的對(duì)象分割。

另外補(bǔ)充一點(diǎn),對(duì)于大多數(shù)請(qǐng)求-響應(yīng)模式的功能,比較適合使用命令模式,正如命令模式定義說(shuō)的那樣,命令模式對(duì)實(shí)現(xiàn)記錄日志、撤銷操作等功能比較方便。

上一頁(yè)1234567下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 天天做天天躁天天躁 | 成人 在线播放 | www.色com | 羞羞无遮挡 | 亚洲一级大黄大色毛片 | 在线毛片网站 | 国产一区二区三区在线看 | 亚洲国产m3u8在线观看 | 国产精品视频ccav | 亚洲国产m3u8在线观看 | 毛片福利| 欧美日韩国产成人综合在线影院 | 免费h片网站 | 亚洲综合一二三区 | 天天操人人爱 | 丁香六月 久久久 | 人人看人人爽 | 日韩欧美一区二区三区四区 | 搜索毛片 | 九九九九精品视频在线播放 | 亚洲图片在线播放 | 日本黄漫画网站入口免费 | 国产精品欧美激情第一页 | 国产精品视频久久久久久 | 国产欧美亚洲精品第二区首页 | 久操导航 | 国产精选在线 | 扒开双腿爽爽爽视频www | 日韩伦理片在线观看 | 播播成人网 | 免费国产成人高清无线看软件 | 毛片福利| 国产精品久久久久久影视 | 免费视频淫片aa毛片 | 成人污网站| 伊人久久大杳蕉综合大象 | 男女无遮挡在线完整视频 | 网站免费满18成年在线观看 | 成人91| 香蕉视频最新版 | 欧美午夜在线播放 |