在寫(xiě)測(cè)試代碼時(shí),,以往我們需要翻閱文檔,,學(xué)習(xí)各種 API 才能明白如何操作斷言。而現(xiàn)在我們可以透過(guò) power-assert 的 assert 方法來(lái)減輕調(diào)試壓力。不僅如此,,它還提供更加直觀,,具體的運(yùn)行效果,幫助 DEBUG,。寫(xiě)測(cè)試代碼,,其實(shí)可以很容易。 例子power-assert 提供的 assert 方法,,已經(jīng)滿足日常的斷言需求,。 describe('Array', function () { beforeEach(function () { this.ary = [1, 2, 3]; }); describe('#indexOf()', function () { it('應(yīng)該返回 index 如果值存在的話', function () { var zero = 0, two = '2'; assert(this.ary.indexOf(zero) === two); }); it('應(yīng)該返回 -1 如果值不存在的話', function () { var minusOne = -1, two = 2; assert.ok(this.ary.indexOf(two) === minusOne, 'THIS IS AN ASSERTION MESSAGE'); }); }); }); describe('String.slice()', function () { it('提取字段的某個(gè)部分,并返回一個(gè)新的字段', function () { var str1 = "The morning is upon us."; var str2 = str1.slice(4, -2); assert(str1 === str2); }); }); 結(jié)果如下: 從 power-assert 中,,你可以很直觀地知道到底哪個(gè)地方的值是和預(yù)想中的不同,,比如說(shuō)第一段測(cè)試代碼里面的 indexOf() 方法,你可以看出 power-assert 指出左側(cè)的 [number] this.ary.indexOf(zero) 返回了 -1,,而右側(cè)則的 [string] two 則返回了 "2",。 更加到位的是:power-assert 對(duì)于每一個(gè)運(yùn)行的操作都有所指出,例如 this.ary 只有 [1,2,3],,zero 是 0(雖然代碼寫(xiě)得很清楚),。 如果有復(fù)雜的測(cè)試需求,你可以封裝它們?yōu)楠?dú)立的方法,,然后組合到一起,。 你可以把以上代碼,復(fù)制粘貼到官網(wǎng)提供的 power-assert playground,,從而看到 power-assert 的效果,。 快速入門(mén)如果你在使用 assert 的話,你無(wú)需使用 require('power-assert'),,Power Assert 會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換,。 Power Assert 有著和 assert 一模一樣的 API,也就是說(shuō),,你可以隨時(shí),,無(wú)痛轉(zhuǎn)換兩者。 安裝 如果你的運(yùn)行環(huán)境是只有 Node.js 的話,,那麼你可以運(yùn)行以下代碼來(lái)安裝,。 npm install --save-dev mocha power-assert intelli-espower-loader 然后運(yùn)行 mocha 來(lái)測(cè)試你的代碼: npx mocha --require intelli-espower-loader 那麼你就可以看到你的 assert 現(xiàn)在提供了很多實(shí)用的提示信息了。 配置方法
攝圖網(wǎng)https://www./sites/73204.html VJ師網(wǎng)https://www./sites/73287.html 深入配置它支持 babel, browserify, webpack, grunt, gulp 等前端現(xiàn)代化開(kāi)發(fā)工具,,并支持 TypeScript(帶類(lèi)型定義),,CoffeeScript。 如果你有試過(guò)其他的代碼測(cè)試工具,,例如chai, should.js, expect.js, 的話,,Power Assert 提供了代碼遷移工具。 你可以透過(guò)以下的組合來(lái)配置你的工程的 power-assert: power-assert + espower-loader 或 intelli-espower-loader : 簡(jiǎn)單、官方推薦的配置方法,,雖然這個(gè)方法只能在 Node.js 環(huán)境下運(yùn)行,。 如果你以上的組合都不想用的話,,那麼你可以使用 espower-cli 來(lái)產(chǎn)生一代可以讓 power-assert 運(yùn)行的測(cè)試代碼: npm install -g espower-cli espower test/some_test.js > build/test/some_test.js 后記其實(shí)早在 2014 年,,已經(jīng)有一位名叫 Takuto Wada 的日本程序員分享過(guò) 關(guān)于 power-asset 的 PPT。雖然版本有點(diǎn)過(guò)時(shí),,但是基本上大同小異,。 我最近嘗試一個(gè)新的開(kāi)發(fā)模式,Test Driven Development (TDD) ﹣ 測(cè)試驅(qū)動(dòng)開(kāi)發(fā),,也就是說(shuō)如何可以隨心所欲地重構(gòu)代碼而不讓它崩潰,。 |
|
來(lái)自: 昵稱65038308 > 《前端技術(shù)CSS/html》