摘要:只測試指定測試套件同一層級中出現兩個測試將忽略同理,同一層級出現和,將會忽略案例忽略該測試忽略該測試忽略該測試自定義比較函數覆蓋比較函數在聲明周期使用,返回或,如果返回或則表示使用默認的進行比較自定義匹配規則在聲明周期使用加入自定義匹配規則
focus spec
只測試指定測試套件, 同一層級中出現 it, fit 兩個測試 spec, 將忽略 it, 同理,同一層級出現 describe和fdescribe,將會忽略desribe
案例describe("Focused specs", function() { fit("is focused and will run", function() { expect(true).toBeTruthy(); }); // 忽略該測試 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(){ // 忽略該測試 fit("is focused and will run", function() { expect(true).toBeTruthy(); }); it("is not focused and will not run", function(){ expect(true).toBeFalsy(); }); }); // 忽略該測試 describe("ignore describe", function () { fit("is focused and will run", function() { expect(true).toBeTruthy(); }); }) });custom equality
自定義比較函數, 覆蓋 toEqual 比較函數. 在beforeEach聲明周期使用 jasmine.addCustomEqualityTester, 返回true 或 false, 如果返回 undefined 或 null. 則表示使用默認的toEqual進行比較
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
自定義匹配規則, 在beforeEach聲明周期使用 jasmine.addMatchers 加入自定義匹配規則. 比 custom equality
更完善, 可以自定義錯誤信息.
beforeEach(function () { jasmine.addMatchers({ // TO BE LIKE toBeLike: function (util, customEqualityTesters) { return { // 匹配規則 // 參數 actual 實際傳入值 // 參數 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(); }); });相關文章推薦
Jasmine基礎教程
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85175.html
摘要:只測試指定測試套件同一層級中出現兩個測試將忽略同理,同一層級出現和,將會忽略案例忽略該測試忽略該測試忽略該測試自定義比較函數覆蓋比較函數在聲明周期使用,返回或,如果返回或則表示使用默認的進行比較自定義匹配規則在聲明周期使用加入自定義匹配規則 focus spec 只測試指定測試套件, 同一層級中出現 it, fit 兩個測試 spec, 將忽略 it, 同理,同一層級出現 descri...
摘要:介紹是基于測試框架行為驅動測試的定義它是通過用自然語言書寫非程序員可讀的測試用例擴展了測試驅動開發方法行為驅動開發人員使用混合了領域中統一的語言的母語語言來描述他們的代碼的目的函數包含兩個參數一個測試套件的名稱實現測試套件的代碼塊函數定義 介紹 Jasmine 是基于 BBD (behavior-driven development)測試框架 行為驅動測試的定義:它是通過用自然語言書寫...
摘要:不論你是在寫瀏覽器端還是后端的,總存在那么一個問題我該使用什么單元測試庫去確保我的代碼如預期的運行呢總是有那么一些流行的框架可供選擇。在中仍然流行,并且擁有來自許多地方性的支持。如果你的測試使用它,直到調用了才能通過。 不論你是在寫瀏覽器端javascript還是后端的nodejs,總存在那么一個問題:我該使用什么單元測試庫去確保我的代碼如預期的運行呢?總是有那么一些流行的框架可供選擇...
摘要:而測試驅動開發技術并不只是單純的測試工作。需求向來就是軟件開發過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構這個詞, 第一反應是: 前端還有架構這一說呢? 在后端開發領域, 系統規劃和可擴展性非常關鍵, 因此架構師備受重視, 早在開發工作啟動之前, 他們就被邀請加入到項目中, 而且他們會跟客戶討論即將建成的平臺的...
摘要:而測試驅動開發技術并不只是單純的測試工作。需求向來就是軟件開發過程中感覺最不好明確描述易變的東西。這里說的需求不只是指用戶的需求,還包括對代碼 可能很多人和我一樣, 首次聽到前端架構這個詞, 第一反應是: 前端還有架構這一說呢? 在后端開發領域, 系統規劃和可擴展性非常關鍵, 因此架構師備受重視, 早在開發工作啟動之前, 他們就被邀請加入到項目中, 而且他們會跟客戶討論即將建成的平臺的...
閱讀 2232·2021-11-22 14:56
閱讀 9836·2021-09-08 10:45
閱讀 1966·2019-08-30 13:54
閱讀 2859·2019-08-29 16:54
閱讀 2003·2019-08-29 14:20
閱讀 1773·2019-08-29 12:25
閱讀 1851·2019-08-29 12:17
閱讀 1049·2019-08-23 18:29