摘要:起博主是電信行業(yè)的碼農(nóng),在工作單位也搞搞單元測(cè)試和了什么。目前對(duì)技術(shù)很感興趣,嘗試新的領(lǐng)域里面也試試看這次要用的方式要實(shí)現(xiàn)一個(gè)簡(jiǎn)單畫(huà)圖板功能,支持和。配置文件里面主要就是一個(gè)對(duì)象,根據(jù)注釋提示調(diào)整下即可。
起
博主是電信行業(yè)的碼農(nóng),在工作單位也搞搞單元測(cè)試和TDD了什么。目前對(duì)Web技術(shù)很感興趣,嘗試新的領(lǐng)域里面也試試看TDD.
這次要用TDD的方式要實(shí)現(xiàn)一個(gè)簡(jiǎn)單畫(huà)圖板功能,支持Chrome和Firefox。
準(zhǔn)備工作 安裝Karmanpm install -g karma
墻內(nèi)的朋友安裝的時(shí)候可能會(huì)看到這樣的錯(cuò)誤
Downloading http://cdn.bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-windows.zip Saving to C:TEMPphantomjsphantomjs-1.9.7-windows.zip events.js:72 throw er; // Unhandled "error" event ^ Error: read ECONNRESET at errnoException (net.js:901:11) at TCP.onread (net.js:556:19)
這個(gè)時(shí)候需要自己手動(dòng)下載一份phantomjs-1.9.7-windows.zip放到對(duì)應(yīng)目錄,然后繼續(xù)執(zhí)行npm install -g karma,安裝就會(huì)成功。
執(zhí)行karma init就會(huì)像執(zhí)行npm init,一樣提示你配置好你的karma.conf.js文件。配置文件里面主要就是一個(gè)JSON對(duì)象,根據(jù)注釋提示調(diào)整下即可。(如果你和我一樣使用的測(cè)試框架是Mocha,斷言庫(kù)是chai的話,還需要為Karma安裝Mocha的插件npm install karma-mocha & npm install karma-chai。)
我的配置文件和目錄結(jié)構(gòu)
./ │ karma.conf.js ├─lib | └─test testwwp.js
啟動(dòng)karma,karma會(huì)啟動(dòng)你需要的瀏覽器,并執(zhí)行case。不過(guò)我們還沒(méi)有添加任何Case。
>karma start INFO [karma]: Karma v0.10.9 server started at http://localhost:9876/ INFO [launcher]: Starting browser Chrome INFO [launcher]: Starting browser Firefox WARN [launcher]: Chrome have not captured in 60000 ms, killing. WARN [launcher]: Firefox have not captured in 60000 ms, killing. INFO [launcher]: Trying to start Chrome again. INFO [launcher]: Trying to start Firefox again. INFO [Chrome 33.0.1750 (Windows 7)]: Connected on socket XSBr3JzPetUpruEbr30w INFO [Firefox 27.0.0 (Windows 7)]: Connected on socket LfejRTLN--KYyhSlr30x Chrome 33.0.1750 (Windows 7): Executed 0 of 0 ERROR (1.061 secs / 0 secs) Firefox 27.0.0 (Windows 7): Executed 0 of 0 ERROR (1.252 secs / 0 secs)添加Case
按照TDD的節(jié)奏,該寫(xiě)一個(gè)失敗的Case了。
"use strict"; var expect = chai.expect; describe("fist test",function() { it("should failed",function() { expect(1).to.equal(2); }); });
Karma的配置文件加載了Mocha和Chai,在測(cè)試文件中就不需要像node.js一樣require("xxx")了。如果你的karma配置文件中autoWatch是true的話,當(dāng)你保存文件之后Karma就告訴你的Case在兩個(gè)瀏覽器里面執(zhí)行的結(jié)果了。
INFO [watcher]: Changed file "D:/git/karmatddpost/test/testwwp.js". Chrome 33.0.1750 (Windows 7) fist test should failed FAILED expected 1 to equal 2 AssertionError: expected 1 to equal 2 Firefox 27.0.0 (Windows 7) fist test should failed FAILED expected 1 to equal 2 Chrome 33.0.1750 (Windows 7): Executed 1 of 1 (1 FAILED) ERROR (0.357 secs / NaN secs) Firefox 27.0.0 (Windows 7): Executed 1 of 1 (1 FAILED) ERROR (0.383 secs / NaN secs)
Karma的TDD的工作環(huán)境算是配置好了。接下來(lái)就可以開(kāi)發(fā)簡(jiǎn)易畫(huà)圖板了。
捐贈(zèng)如果您覺(jué)得本文對(duì)您有幫助,歡迎請(qǐng)作者一杯咖啡
https://me.alipay.com/shupengfei
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78027.html
摘要:為保證代碼的質(zhì)量,單元測(cè)試必不可少。本文記錄自己在學(xué)習(xí)單元測(cè)試過(guò)程中的一些總結(jié)。以一個(gè)項(xiàng)目為例,代碼結(jié)構(gòu)如下前端測(cè)試框架主要是與,這里我們選擇,斷言庫(kù)有以及自帶的。 為保證代碼的質(zhì)量,單元測(cè)試必不可少。本文記錄自己在學(xué)習(xí)單元測(cè)試過(guò)程中的一些總結(jié)。 TDD與BDD的區(qū)別 TDD屬于測(cè)試驅(qū)動(dòng)開(kāi)發(fā),BDD屬于行為驅(qū)動(dòng)開(kāi)發(fā)。個(gè)人理解其實(shí)就是TDD先寫(xiě)測(cè)試模塊,再寫(xiě)主功能代碼,然后能讓測(cè)試模塊通...
摘要:感覺(jué)不能這樣下去就學(xué)寫(xiě)一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。具體執(zhí)行的測(cè)試用例實(shí)現(xiàn)代碼。測(cè)試工具斷言庫(kù)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)及測(cè)試框架入門(mén)學(xué)習(xí) 最近博主工作是和另一枚后端合作,但是經(jīng)常發(fā)現(xiàn)他寫(xiě)的接口出錯(cuò),苦逼連連。感覺(jué)不能這樣下去就學(xué)寫(xiě)一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。 經(jīng)過(guò)博主一番查找,貌似被推薦比較多的有mocha和chai,下面記錄簡(jiǎn)...
摘要:感覺(jué)不能這樣下去就學(xué)寫(xiě)一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。具體執(zhí)行的測(cè)試用例實(shí)現(xiàn)代碼。測(cè)試工具斷言庫(kù)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)及測(cè)試框架入門(mén)學(xué)習(xí) 最近博主工作是和另一枚后端合作,但是經(jīng)常發(fā)現(xiàn)他寫(xiě)的接口出錯(cuò),苦逼連連。感覺(jué)不能這樣下去就學(xué)寫(xiě)一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。 經(jīng)過(guò)博主一番查找,貌似被推薦比較多的有mocha和chai,下面記錄簡(jiǎn)...
摘要:的配置文件是為了解析那些需要測(cè)試的源文件相關(guān)的文件,然后再給的單元測(cè)試用例去識(shí)別。其作用是僅僅渲染至虛擬節(jié)點(diǎn),不會(huì)返回真實(shí)的節(jié)點(diǎn),能極大提高測(cè)試性能。 為解放勞動(dòng)力,發(fā)展生產(chǎn)力 測(cè)試有了這般變化: 鼠標(biāo)點(diǎn)擊手動(dòng)測(cè)試 -> 用腳本模擬,自動(dòng)化測(cè)試 Vue中的組件測(cè)試 需要安裝的包 全局安裝:babel、mocha、karma 其他局部安裝的包在下面的【測(cè)試環(huán)境搭建】最下方配置文件中給出...
摘要:目前就職于,他在各種演講研討會(huì)和開(kāi)發(fā)者大會(huì)上積極推廣測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。問(wèn)很多敏捷教練都表示訓(xùn)練新人做測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一件辛苦而進(jìn)度緩慢的事,并且收益也不是很大。首先是開(kāi)發(fā)的對(duì)話式風(fēng)格。第一個(gè)問(wèn)題就是測(cè)試套件的速度。 Harry J.W. Percival目前就職于PythonAnywhere,他在各種演講、研討會(huì)和開(kāi)發(fā)者大會(huì)上積極推廣測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)。他在利物浦大學(xué)獲得計(jì)算機(jī)科學(xué)碩士學(xué)...
閱讀 1032·2022-07-19 10:19
閱讀 1803·2021-09-02 15:15
閱讀 1018·2019-08-30 15:53
閱讀 2661·2019-08-30 13:45
閱讀 2663·2019-08-26 13:57
閱讀 1993·2019-08-26 12:13
閱讀 1015·2019-08-26 10:55
閱讀 555·2019-08-26 10:46