摘要:不論你是在寫瀏覽器端還是后端的,總存在那么一個(gè)問(wèn)題我該使用什么單元測(cè)試庫(kù)去確保我的代碼如預(yù)期的運(yùn)行呢總是有那么一些流行的框架可供選擇。在中仍然流行,并且擁有來(lái)自許多地方性的支持。如果你的測(cè)試使用它,直到調(diào)用了才能通過(guò)。
不論你是在寫瀏覽器端javascript還是后端的nodejs,總存在那么一個(gè)問(wèn)題:我該使用什么單元測(cè)試庫(kù)去確保我的代碼如預(yù)期的運(yùn)行呢?總是有那么一些流行的框架可供選擇。如果你正在考慮Qunit、Jasmine或者M(jìn)ocha,那么恰好我這有一些他們的優(yōu)缺點(diǎn)信息介紹,你可能感興趣。
QunitqUnit是我列舉出中最老的一個(gè)框架,08年正式發(fā)布。由于時(shí)間原因,隨著時(shí)間積累了一些用戶。在Jquery中仍然流行,并且擁有來(lái)自許多地方性的支持。
它發(fā)展的如何呢?真的不讓人滿意。
特點(diǎn)
大量的支持,從Q&A到CI服務(wù)器支持
缺點(diǎn)
Jasmine語(yǔ)法不流暢
配置令人頭疼,必須持續(xù)維護(hù)
引入第三庫(kù)比較困難
異步測(cè)試?yán)щy
No baked-in headless run support(待譯)
Jasmine是稍微新一點(diǎn)的框架,于qUnit發(fā)布后的2年2010年發(fā)布。這是一個(gè)有足夠時(shí)間成長(zhǎng)的框架,然而仍要學(xué)習(xí)其他javascript框架。它的初衷是易于安裝和適用于任何場(chǎng)景。大多數(shù)場(chǎng)景下,它的運(yùn)行需要Karma或Chutzpah,除了一些發(fā)行版本(如jasmine-node npm)有內(nèi)建的runner。
它的前景如何呢?對(duì)于你想要的大多數(shù)場(chǎng)景來(lái)說(shuō),它是非常棒的。異步代碼是主要的問(wèn)題。
特點(diǎn)
對(duì)于node來(lái)說(shuō)通過(guò)jasmine-node是很好安裝的
Headless running out of the box(待譯)
內(nèi)置流暢漂亮的語(yǔ)法,完美兼容其它測(cè)試庫(kù)
有許多CI服務(wù)器(如TeamCityp,CodeShip等)和一些本身不支持插件的服務(wù)器支持
可描述性的BDD范例
缺點(diǎn)
Mocha異步測(cè)試有些麻煩
所有測(cè)試文件都有個(gè)確切的后綴(默認(rèn)*spec.js)
Mocha專為nodeJS的模塊構(gòu)建,2012發(fā)布重大版本。它的API與Jasmine非常像,多了一些語(yǔ)法糖去適用于更多的場(chǎng)景,如BDD。內(nèi)建有runner,所以你不用操心runner了。與jasmine不同,它對(duì)異步代碼的測(cè)試有很好的支持,通過(guò)調(diào)用done函數(shù)。如果你的測(cè)試使用它,直到done調(diào)用了test才能通過(guò)。如果沒(méi)有調(diào)用它,當(dāng)test方法的代碼執(zhí)行完test才能通過(guò)。
我對(duì)它的印象是,非常適合我!
特點(diǎn)
易于安裝
Headless running out of the box
允許任何能夠拋出失敗異常測(cè)試庫(kù)的使用
部分CI服務(wù)器和其它插件的支持
功能上更多是面向行為驅(qū)動(dòng)開(kāi)發(fā)或者行為面向測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
高擴(kuò)展性
輕而易舉的進(jìn)行異步測(cè)試
缺點(diǎn)
較新的領(lǐng)域,部分領(lǐng)域缺少支持
原文鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/87816.html
摘要:很快我發(fā)現(xiàn)有一個(gè)誤區(qū),許多人認(rèn)為單元測(cè)試必須是一個(gè)集中運(yùn)行所有單元的測(cè)試,并一目了然。許多人認(rèn)為單元測(cè)試,甚至整個(gè)測(cè)試都是在編碼結(jié)束后的一道工序,而修復(fù)也不過(guò)是在做垃圾掩埋一類的工作。 單元測(cè)試Unit Test 很早就知道單元測(cè)試這樣一個(gè)概念,但直到幾個(gè)月前,我真正開(kāi)始接觸和使用它。究竟什么是單元測(cè)試?我想也許很多使用了很久的人也不一定能描述的十分清楚,所以寫了這篇文章來(lái)嘗試描述它...
摘要:核心功能就是啟動(dòng)一個(gè)服務(wù)并監(jiān)聽(tīng)項(xiàng)目文件改變,文件改變后再刷新服務(wù)器。 Karma 簡(jiǎn)介 Karma是Testacular的新名字,在2012年google開(kāi)源了Testacular,2013年Testacular改名為Karma。Karma是一個(gè)讓人感到非常神秘的名字,表示佛教中的緣分,因果報(bào)應(yīng),比Cassandra這種名字更讓人猜不透! Karma是一個(gè)基于Node.js的JavaS...
摘要:本文只討論單測(cè)的范疇,對(duì)集成測(cè)試有興趣的話,可以看下的集成測(cè)試代碼。前端單測(cè)現(xiàn)狀測(cè)試本質(zhì)上就是假定一個(gè)輸入,然后判斷得到預(yù)期的輸出。 原文發(fā)于我的博客:https://github.com/hwen/blogS... 要不要寫單測(cè)? 關(guān)于這個(gè) cnode 上就有個(gè)很有意思的討論 做個(gè)調(diào)查,你的 Node 應(yīng)用有寫單測(cè)嗎? 看完這個(gè)應(yīng)該會(huì)有結(jié)論?如果沒(méi)有,就回帖跟別人探討下~ 測(cè)試 測(cè)試...
摘要:包括腳手架依賴管理準(zhǔn)備測(cè)試包括單元測(cè)試和端到端測(cè)試。我們用來(lái)開(kāi)發(fā)的工具有。是一個(gè)工具集,包含個(gè)核心組件,,和腳手架工具。當(dāng)你正在做自己的一個(gè)項(xiàng)目時(shí),使用哪些模塊將取決于你自己。這個(gè)目錄當(dāng)然是測(cè)試文件。 介紹 有很多可用的工具可以幫助你開(kāi)發(fā)AngularJS 應(yīng)用,那些非常復(fù)雜的框架不在我的討論范圍之中,這也是我開(kāi)始這系列教程的原因。 在第一部分,我們掌握了AngularJS框架的基本...
摘要:一個(gè)靠譜的應(yīng)該包含以下幾部分言簡(jiǎn)意賅的項(xiàng)目介紹你的項(xiàng)目解決了什么核心問(wèn)題,有哪些令人心動(dòng)的特性。除了在中提到遵循的開(kāi)源協(xié)議外,一個(gè)靠譜的開(kāi)源項(xiàng)目還會(huì)將該開(kāi)源協(xié)議的內(nèi)容文檔放在自己的項(xiàng)目下方。 0. 前言 寫前端代碼一段時(shí)間之后,你可能會(huì)萌生做一個(gè)開(kāi)源項(xiàng)目的想法,一方面將自己的好點(diǎn)子分享出去讓更多的人受益,另一方面也可以在社區(qū)貢獻(xiàn)的環(huán)境下學(xué)到更多的東西從而快速成長(zhǎng)。但是開(kāi)源項(xiàng)目也有開(kāi)源項(xiàng)...
閱讀 1396·2023-04-26 02:38
閱讀 1012·2023-04-25 20:13
閱讀 3651·2021-11-19 11:31
閱讀 2453·2019-08-30 15:55
閱讀 2784·2019-08-30 14:11
閱讀 3222·2019-08-30 13:45
閱讀 1437·2019-08-29 18:41
閱讀 1226·2019-08-29 16:18