譯:你該使用什麼單元測試,Qunit、Jasmine仍是Mocha?

不論你是在寫瀏覽器端javascript仍是後端的nodejs,總存在那麼一個問題:我該使用什麼單元測試庫去確保個人代碼如預期的運行呢?老是有那麼一些流行的框架可供選擇。若是你正在考慮Qunit、Jasmine或者Mocha,那麼剛好我這有一些他們的優缺點信息介紹,你可能感興趣。javascript

Qunit

qUnit是我列舉出中最老的一個框架,08年正式發佈。因爲時間緣由,隨着時間積累了一些用戶。在Jquery中仍然流行,而且擁有來自許多地方性的支持。java

它發展的如何呢?真的不讓人滿意。node

特色npm

大量的支持,從Q&A到CI服務器支持後端

缺點瀏覽器

  1. 語法不流暢服務器

  2. 配置使人頭疼,必須持續維護框架

  3. 引入第三庫比較困難less

  4. 異步測試困難異步

  5. No baked-in headless run support(待譯)

Jasmine

Jasmine是稍微新一點的框架,於qUnit發佈後的2年2010年發佈。這是一個有足夠時間成長的框架,然而仍要學習其餘javascript框架。它的初衷是易於安裝和適用於任何場景。大多數場景下,它的運行須要Karma或Chutzpah,除了一些發行版本(如jasmine-node npm)有內建的runner。

它的前景如何呢?對於你想要的大多數場景來講,它是很是棒的。異步代碼是主要的問題。

特色

  1. 對於node來講經過jasmine-node是很好安裝的

  2. Headless running out of the box(待譯)

  3. 內置流暢漂亮的語法,完美兼容其它測試庫

  4. 有許多CI服務器(如TeamCityp,CodeShip等)和一些自己不支持插件的服務器支持

  5. 可描述性的BDD範例

缺點

  1. 異步測試有些麻煩

  2. 全部測試文件都有個確切的後綴(默認*spec.js)

Mocha

Mocha專爲nodeJS的模塊構建,2012發佈重大版本。它的API與Jasmine很是像,多了一些語法糖去適用於更多的場景,如BDD。內建有runner,因此你不用操心runner了。與jasmine不一樣,它對異步代碼的測試有很好的支持,經過調用done函數。若是你的測試使用它,直到done調用了test才能經過。若是沒有調用它,當test方法的代碼執行完test才能經過。

我對它的印象是,很是適合我!

特色

  1. 易於安裝

  2. Headless running out of the box

  3. 容許任何可以拋出失敗異常測試庫的使用

  4. 部分CI服務器和其它插件的支持

  5. 功能上更可能是面向行爲驅動開發或者行爲面向測試驅動開發

  6. 高擴展性

  7. 垂手可得的進行異步測試

缺點

  1. 較新的領域,部分領域缺乏支持

原文連接

相關文章
相關標籤/搜索