摘要:只測(cè)試指定測(cè)試套件同一層級(jí)中出現(xiàn)兩個(gè)測(cè)試將忽略同理,同一層級(jí)出現(xiàn)和,將會(huì)忽略案例忽略該測(cè)試忽略該測(cè)試忽略該測(cè)試自定義比較函數(shù)覆蓋比較函數(shù)在聲明周期使用,返回或,如果返回或則表示使用默認(rèn)的進(jìn)行比較自定義匹配規(guī)則在聲明周期使用加入自定義匹配規(guī)則
focus spec
只測(cè)試指定測(cè)試套件, 同一層級(jí)中出現(xiàn) it, fit 兩個(gè)測(cè)試 spec, 將忽略 it, 同理,同一層級(jí)出現(xiàn) describe和fdescribe,將會(huì)忽略desribe
案例describe("Focused specs", function() { fit("is focused and will run", function() { expect(true).toBeTruthy(); }); // 忽略該測(cè)試 spec it("is not focused and will not run", function(){ expect(true).toBeFalsy(); }); fdescribe("focused describe", function(){ it("will run", function(){ expect(true).toBeTruthy(); }); it("will also run", function(){ expect(true).toBeTruthy(); }); }); fdescribe("another focused describe", function(){ // 忽略該測(cè)試 fit("is focused and will run", function() { expect(true).toBeTruthy(); }); it("is not focused and will not run", function(){ expect(true).toBeFalsy(); }); }); // 忽略該測(cè)試 describe("ignore describe", function () { fit("is focused and will run", function() { expect(true).toBeTruthy(); }); }) });custom equality
自定義比較函數(shù), 覆蓋 toEqual 比較函數(shù). 在beforeEach聲明周期使用 jasmine.addCustomEqualityTester, 返回true 或 false, 如果返回 undefined 或 null. 則表示使用默認(rèn)的toEqual進(jìn)行比較
describe("test suite", function () { beforeEach(function() { jasmine.addCustomEqualityTester(function (actual, expected) { var actualType = typeof actual if (actualType === "string" && actualType === typeof expected) { return actual[0] === expected[0] } }); }); it("should be custom equal", function () { expect("aa").toEqual("ab"); }); });custom matchers
自定義匹配規(guī)則, 在beforeEach聲明周期使用 jasmine.addMatchers 加入自定義匹配規(guī)則. 比 custom equality
更完善, 可以自定義錯(cuò)誤信息.
beforeEach(function () { jasmine.addMatchers({ // TO BE LIKE toBeLike: function (util, customEqualityTesters) { return { // 匹配規(guī)則 // 參數(shù) actual 實(shí)際傳入值 // 參數(shù) expected 期待值 compare: function (actual, expected) { var pass = false; var message = ""; var actualType = typeof actual; var expectedType = typeof expected; if (actual === expected) { pass = true; } else if (actual === null) { pass = expected === null || expected === undefined; } else if (actualType === expectedType) { pass = true; if (actualType === "object") { for (name in actual) { if (actual[name] === null || actual[name] === undefined) { pass = expected === null || expected === undefined; } else if (typeof actual[name] !== typeof expected[name]) { pass = false; } if (!pass) { break; } } } } if (pass) { message = "Expected " + actual + " to be like" } else { message = "Expected " + actual + " not to be like" } return { pass: pass, message: message }; } // end compare }; } // end toBeLike function }); });
使用方式
describe("to be like suite", () => { function noop () {} function noop2 () {} it("assert to be like", function () { expect("f").toBeLike("a"); expect(null).toBeLike(undefined); expect({ msg: "first msg", cb: noop }).toBeLike({ msg: "second msg", cb: noop2 }); }); it("assert no to be like", function () { expect(1).not.toBeLike("1"); expect(noop).not.toBeLike(); }); });相關(guān)文章推薦
Jasmine基礎(chǔ)教程
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85175.html
摘要:只測(cè)試指定測(cè)試套件同一層級(jí)中出現(xiàn)兩個(gè)測(cè)試將忽略同理,同一層級(jí)出現(xiàn)和,將會(huì)忽略案例忽略該測(cè)試忽略該測(cè)試忽略該測(cè)試自定義比較函數(shù)覆蓋比較函數(shù)在聲明周期使用,返回或,如果返回或則表示使用默認(rèn)的進(jìn)行比較自定義匹配規(guī)則在聲明周期使用加入自定義匹配規(guī)則 focus spec 只測(cè)試指定測(cè)試套件, 同一層級(jí)中出現(xiàn) it, fit 兩個(gè)測(cè)試 spec, 將忽略 it, 同理,同一層級(jí)出現(xiàn) descri...
摘要:介紹是基于測(cè)試框架行為驅(qū)動(dòng)測(cè)試的定義它是通過用自然語言書寫非程序員可讀的測(cè)試用例擴(kuò)展了測(cè)試驅(qū)動(dòng)開發(fā)方法行為驅(qū)動(dòng)開發(fā)人員使用混合了領(lǐng)域中統(tǒng)一的語言的母語語言來描述他們的代碼的目的函數(shù)包含兩個(gè)參數(shù)一個(gè)測(cè)試套件的名稱實(shí)現(xiàn)測(cè)試套件的代碼塊函數(shù)定義 介紹 Jasmine 是基于 BBD (behavior-driven development)測(cè)試框架 行為驅(qū)動(dòng)測(cè)試的定義:它是通過用自然語言書寫...
摘要:不論你是在寫瀏覽器端還是后端的,總存在那么一個(gè)問題我該使用什么單元測(cè)試庫去確保我的代碼如預(yù)期的運(yùn)行呢總是有那么一些流行的框架可供選擇。在中仍然流行,并且擁有來自許多地方性的支持。如果你的測(cè)試使用它,直到調(diào)用了才能通過。 不論你是在寫瀏覽器端javascript還是后端的nodejs,總存在那么一個(gè)問題:我該使用什么單元測(cè)試庫去確保我的代碼如預(yù)期的運(yùn)行呢?總是有那么一些流行的框架可供選擇...
摘要:而測(cè)試驅(qū)動(dòng)開發(fā)技術(shù)并不只是單純的測(cè)試工作。需求向來就是軟件開發(fā)過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對(duì)代碼 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開發(fā)工作啟動(dòng)之前, 他們就被邀請(qǐng)加入到項(xiàng)目中, 而且他們會(huì)跟客戶討論即將建成的平臺(tái)的...
摘要:而測(cè)試驅(qū)動(dòng)開發(fā)技術(shù)并不只是單純的測(cè)試工作。需求向來就是軟件開發(fā)過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對(duì)代碼 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備受重視, 早在開發(fā)工作啟動(dòng)之前, 他們就被邀請(qǐng)加入到項(xiàng)目中, 而且他們會(huì)跟客戶討論即將建成的平臺(tái)的...
閱讀 2262·2021-11-22 14:56
閱讀 10079·2021-09-08 10:45
閱讀 1982·2019-08-30 13:54
閱讀 2871·2019-08-29 16:54
閱讀 2012·2019-08-29 14:20
閱讀 1779·2019-08-29 12:25
閱讀 1859·2019-08-29 12:17
閱讀 1054·2019-08-23 18:29