天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript 測試工具abut發(fā)布

  abut全稱為annotations-based unit testing,基于注釋的單元測試工具,也可以就地取此英文的原義(毗鄰)稱呼它。眾所周知,Javascript實在不好做測試,即使我這個工具現(xiàn)在對事件響應這東西還是無可奈何的,這只能黑盒測試。不過,能白盒測試的,我們還是進行白盒測試。Javascript經(jīng)近幾年的迅猛發(fā)展,也涌現(xiàn)諸如Qunit,JSpec這些優(yōu)秀的測試框架。但我最后還是決定自己搞一個。原因如下:

  • 我喜歡自造輪子。
  • 由于在寫框架(龜速進行中),傾向于選擇器,測試工具等東西都出自自家。
  • 寫文檔是痛苦,倒不如寫注釋,既然寫注釋,就要物盡其用,一次性把注釋與測試都寫完。
  • 其他測試框架寫測試都很惡心,單個測試的代碼量比較長(本來就不想寫,勉為其難地寫,方法易用是王道)。
  • 其他測試框架寫測試都是寫在另一個文件上,更增加人寫測試的抗拒性。
  • 寫在另一個文件上,萬一這文件丟失了怎么辦?!

  順便說一下單元測試的好處,緩解一下大家對它的厭惡。

  http://www.cnblogs.com/nuaalfm/archive/2010/02/26/1674235.html
  單元測試的優(yōu)點
  1、它是一種驗證行為。
  程序中的每一項功能都是測試來驗證它的正確性。它為以后的開發(fā)提供支緩。就算是開發(fā)后期,我們也可以輕松的增加功能或更改程序結構,而不用擔心這個過程中會破壞重要的東西。而且它為代碼的重構提供了保障。這樣,我們就可以更自由的對程序進行改進。
  2、它是一種設計行為。
  編寫單元測試將使我們從調(diào)用者觀察、思考。特別是先寫測試(test-first),迫使我們把程序設計成易于調(diào)用和可測試的,即迫使我們解除軟件中的耦合。
  3、它是一種編寫文檔的行為。
  單元測試是一種無價的文檔,它是展示函數(shù)或類如何使用的最佳文檔。這份文檔是可編譯、可運行的,并且它保持最新,永遠與代碼同步。
  4、它具有回歸性。
  自動化的單元測試避免了代碼出現(xiàn)回歸,編寫完成之后,可以隨時隨地的快速運行測試。

  基于上面的原因,我的單元測試與當前流行的測試框架有很大不同,首先測試代碼與我們的執(zhí)行代碼是位于同一個文件,其次它是非常符號化的(汲取模板系統(tǒng)的經(jīng)驗),最后它總是對整個文件進行操作。為了獲取注釋,我是用AJAX的同步請求實現(xiàn)的(dom.abut(url))。

  現(xiàn)在說說一些相關概念。既然是單元測試,每個測試代碼都應該封閉在一個獨立的環(huán)境中,通常我們用閉包收拾之。但有可能連續(xù)幾個測試程序都共有一個測試數(shù)據(jù)呢,但這測試數(shù)據(jù)當然也不能丟在全局作用域下,于是就有了大閉包與小閉包之分。具體表現(xiàn)如下:

//第二個參數(shù)僅在瀏覽器支持Object.defineProperties時可用
applyIf(Object,{
create:
function( proto, props ) {//ecma262v5 15.2.3.5
//略去具體實現(xiàn)
},
//$$$$same(Object.keys({aa:1,bb:2,cc:3}),["aa","bb","cc"])
keys: function(obj){//ecma262v5 15.2.3.14
//略去具體實現(xiàn)
}
});

//用于創(chuàng)建Javascript1.6 Array的迭代器
function iterator(vars, body, ret) {
return eval('[function(fn,scope){'+
'for(var '+vars+'i=0,l=this.length;i<l;i++){'+
body.replace(
'_', 'fn.call(scope,this[i],i,this)') +
'}' +
ret
+
'}]')[0];
};
//注釋照搬FF官網(wǎng)
/*

<<<<
var arr = [1,2,3,4,5,6];
$$$$eq(arr.indexOf(2),1)
$$$$eq(arr.lastIndexOf(6),5)
arr.slice(3).forEach(function(el,index,aaa){
$$$$log(el,"item");
$$$$log(index,"index");
$$$$log(aaa,"array");
});
var arr2 = arr.map(function(el){
return el+1;
});
$$$$same(arr2,[2,3,4,5,6,7]);
>>>>
*
*/
applyIf(Array[PROTO],{
//定位類 返回指定項首次出現(xiàn)的索引。
indexOf: function (el, index) {
//略去具體實現(xiàn)
},
//定位類 返回指定項最后一次出現(xiàn)的索引。
lastIndexOf: function (el, index) {
//略去具體實現(xiàn)
},

it知識庫javascript 測試工具abut發(fā)布,轉載需保留來源!

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

主站蜘蛛池模板: 美女白虎穴 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 | 无人区大片中文字幕在线 | 欧美性极品黑人hd | 极品网红液液酱粉嫩福利照子凌酱 | 97国产蝌蚪视频在线观看 | 国产爱豆果冻传媒在线观看视频 | 欧美激情精品久久久久久不卡 | 超碰视频在线观看 | 亚洲精品嫩草AV在线观看 | 国产精品一区二区AV白丝在线 | 国产这里有精品 | 亚洲国产第一区二区三区 | 欧美黄色第一页 | 一个人在线观看视频 | 国产人妻午夜无码AV天堂 | 精品久久久久中文字幕加勒比东京热 | 护士们的母狗 | 欧美 亚洲 中文字幕 高清 | 一区二区三区国产亚洲网站 | 人与禽交3d动漫羞羞动漫 | youjizz怎么看 | SM调教贱屁股眼哭叫求饶H | 999在线观看精品免费 | 久久国产乱子伦精品免费M 久久国产露脸老熟女熟69 | 2019精品国产品在线不卡 | 脱jk裙的美女露小内内无遮挡 | 免费播放美女一级毛片 | 岳的奶大又白又胖 | 久久精品热播在线看 | 国产精品亚洲AV色欲在线观看 | 欧美美女一区二区三区 | 国产露脸A片国语露对白 | 内射少妇36P九色 | 999久久国产精品免费人妻 | 青青草国产偷拍在线av | 欧美aa级片 | 国产精品久久久久精品A片软件 | 亚洲AV精品乱码专区 | 99re精品视频在线播放视频 | 人人澡人人擦人人免费 |