我是一名菜鳥,由於最近項目中用到了這個jasmine,而且在網上也沒有查找到什麼jasmine實例解析這一塊,因此想借此機會去寫幾篇關於jasmine實例應用解析的博文,但願各位大牛不用狂噴,給新人一次機會吧,在此謝過,廢話很少說。html
本人對jasmine先前也是沒有一點了解,甚至都沒有據說過有這麼一個框架的存在,可是最近的項目中就運用到了這個jasmine框架,本身不得已的去學習了一下。先來了解什麼是jasmine:git
jasmine說白了就是用來測試js的一個框架,其實jasmine的官方網站(http://jasmine.github.io/)上也介 紹了好多的實例,可是我去參考他這個官方的東西時,沒有幾個可以和本身的項目關聯起來,因而又去百度上找一下相關的信息,效果也不是很好,介紹 jasmine的這個信息至關少,並且大同小異,就是一些經常使用的關鍵函數,比較詳細的是(http://www.cnblogs.com/zhcncn /p/4330112.html),可是他這裏面的解釋有一些官方了,你要是一點都不瞭解這個jasmine,可能運用到你的項目上時就會很難融合,不知 所措。我這裏就不詳細介紹函數是幹什麼的了,直接前往主題,用實例去解析,下面的實例我就不用官方上的那些例子了,直接上項目中我遇到的讓我調查時間比較 長的一些例子github
第一個實例:ajax
js中不可缺乏的部分(ajax),對於ajax的請求,一般的ajax請求的框架
源碼:函數
$.ajax({
url: 'c://url',
type: 'GET',
name: 'name',學習
data: params,測試
success : function(data) {
if(data.errorMsg !== '') {網站
return;
url
}
},
error : function(XHR, Status, error) {
console.log("log");
}
});
對於這種狀況下的jasmine測試代碼該去怎麼實現呢,這裏面我就借鑑了官網和百度上的一些例子去實現的:
spyOn($, "ajax").and.callFake(function(options) {
options.success({
errorMsg = "errorMsg"
});
});
這個spyOn是jasmine裏面最重要的一個函數,具體重要在哪裏,能夠看我先前發的兩個網站上的介紹,使用spyOn()函數替代並 監控ajax調用,結合callFake()僞造ajax的返回處理。Ajax的success()和error()均可以製做相關的僞造功能,運行時代 替ajax功能,將須要的數據返回給被測函數。下面是error的場合:
spyOn($, "ajax").and.callFake(function(options) {
var XHR = {
"status" : "NG"
};
var Status = "error";
var error= {
"message" : "it has an errormessage"
};
options.error(XHR, Status, error);
});
記住這個函數,callFake(),替代被監視的函數,原函數不執行,執行裏面的函數
第一部分先介紹到這裏,第二部分等有時間起去更新,因爲本身也是個菜鳥,可能會在描述的時候不清晰,但願你們多提意見,我會努力改正的,有不清楚的能夠留言,我會解答的