色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Dojo單元測試框架DOH介紹

  單元測試的重要性已毋須多言,無論是從保證軟件開發(fā)質(zhì)量,還是從節(jié)約軟件后期維護(hù)成本來說,單元測試都是最佳實踐。而在敏捷編程領(lǐng)域,隨著TDD(測試驅(qū)動開發(fā))被越來越多的開發(fā)者所接受,單元測試已經(jīng)成為開發(fā)過程中舉足輕重的一部分。

  編寫單元測試離不開成熟的單元測試框架,由于JUnit框架的成功,Java開發(fā)者對于單元測試的接受程度非常高。而Web2.0前端開發(fā)的單元測試一直以來是一塊不太受重視的領(lǐng)域,導(dǎo)致這個狀況的有很多:前端開發(fā)中邏輯和界面耦合度高、Javascript的模塊概念單薄、Javascript運行環(huán)境(瀏覽器)不統(tǒng)一等;最主要的原因是缺乏成熟的單元測試框架,用來支持Web開發(fā)的特性(Ajax,DOM等)以及Web前端的自動化單元測試,然而Dojo中的DOH工具改變了這個現(xiàn)象。

  DOH簡介

  Dojo作為一個成熟的Javascript開發(fā)工具集,提供了強(qiáng)大的Javascript單元測試工具DOH(Dojo Objective Harness)。DOH主要是由Dojo的創(chuàng)始人Alex Russel主持開發(fā),目的就是要針對Web前端開發(fā)者提供一個有如下特點的測試框架:

  1. 提供用戶界面:JUnit中的紅條測試失敗、綠條測試通過,大家都已經(jīng)很熟悉了,DOH也有類似的用戶界面,用戶在測試時更加一目了然;
  2. 平臺無關(guān):DOH并不依賴某種瀏覽器平臺,甚至不依賴于瀏覽器;用戶可以根據(jù)自己的需要在命令行進(jìn)行Javascript的自動化單元測試;
  3. 支持Ajax:Ajax編程在Web前端開發(fā)中是必不可少的一環(huán),DOH最有價值的一個特性就是支持Ajax的測試;
  4. 不只適合與于Dojo,可用于任何JavaScript程序的單元測試。

  本文將以Dojo1.6.1版本為例,介紹如何使用DOH編寫測試用例。

  DOH初體驗

  Dojo的核心庫(dojo)、控件庫(dijit)以及一部分的擴(kuò)展庫(dojox)都自帶了比較完備的測試用例,所以在了解如何編寫DOH測試用例之前,運行一下Dojo1.6版本中已有的測試,可以對DOH有個大致的了解。

  首先下載Dojo1.6.1,DOH測試框架就在dojo-release-1.6.1-src/util/doh文件夾下,其中runner.html頁面就是基于瀏覽器的DOH測試用戶界面。本文中的http服務(wù)器使用Apache2.2,有關(guān)Apache的配置可以參照這里,首先我們來運行一下最常被使用的dojo.query的測試用例。dojo.query的測試模塊為test._base.query,在瀏覽器上運行DOH測試用例非常簡單,只要一個url即可:http://localhost/dojo161/util/doh/runner.html?testModule=tests._base.query ,dojo161是在Apache中設(shè)置的虛擬路徑,指向dojo-release-1.6.1-src目錄;下圖是test._base.query模塊的測試結(jié)果:

  左邊的是測試用例列表,可以看到test._base.query測試模塊里含有兩組測試用例:test.base.query和test.base.NodeList,同事還顯示了該測試集消耗的時間,右邊是測試用例的日志。與JUnit相同,綠色表示通過測試,而紅色反之。

  這里需要重點介紹的的是testModule參數(shù):DOH中的測試對象稱為測試模塊,測試模塊中包含測試用例。DOH提供了兩種載入測試模塊的方式,一種是直接載入聲明了名稱的測試模塊, 下面的代碼聲明了名為test._base.query的測試模塊,包含兩組用例:

dojo.provide("tests._base.query");
if(dojo.isBrowser){
doh.registerUrl(
"tests._base.query", dojo.moduleUrl("tests", "_base/query.html"),

it知識庫Dojo單元測試框架DOH介紹,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 阿拉尔市| 丰城市| 田东县| 三江| 邛崃市| 贵州省| 凤台县| 遂溪县| 盐亭县| 浏阳市| 南通市| 揭东县| 鸡西市| 逊克县| 宁化县| 康乐县| 大英县| 毕节市| 酉阳| 沿河| 乐都县| 泽州县| 应用必备| 通河县| 通州市| 潼关县| 手机| 县级市| 海南省| 大田县| 杂多县| 公主岭市| 大厂| 勐海县| 志丹县| 特克斯县| 阿荣旗| 梅河口市| 库伦旗| 紫云| 崇文区|