12 款 JS 代碼測(cè)試必備工具(翻譯)
每天都會(huì)產(chǎn)生新的代碼、用戶測(cè)試工具和框架。下面的列表列出了可以完成各種測(cè)試需求的代碼工具。你應(yīng)該調(diào)查研究一下,看這些工具是否適用于你的技術(shù)棧和技術(shù)需求。
01. Jasmine
Jasmine 是一個(gè)行為驅(qū)動(dòng)的測(cè)試開發(fā)框架,用于對(duì) JavaScript 代碼進(jìn)行測(cè)試。它不依賴其它任何 JavaScript 框架,也不需要 DOM。它的語法簡(jiǎn)潔、明確,寫測(cè)試非常容易。
02. Mocha
Mocha 是一個(gè)功能豐富的 JavaScript 測(cè)試框架,既運(yùn)行于 Node.js 環(huán)境中,也可以運(yùn)行于瀏覽器環(huán)境中。Mocha 以串行方式運(yùn)行測(cè)試,能做出靈活而準(zhǔn)確的報(bào)告,也能將測(cè)試中未捕捉的異常映射到正確的測(cè)試用例。
03. Chai
Chai 是個(gè)支持 BDD / TDD 的庫,可用于 node 和瀏覽器,可配合任何 JavaScript 測(cè)試框架使用。
04. QUnit
QUnit 是個(gè)功能強(qiáng)大又易于使用的 JavaScript 單元測(cè)試框架。jQuery、jQuery UI 和 jQuey Mobile 項(xiàng)目都使用這個(gè)框架,它能測(cè)試普通的 JavaScript 代碼。
05. Sinon
Sinon.JS 為 JavaScript 提供了獨(dú)立的 spies、stubs 和 mocks [譯者注:Spy、Stub 和 Mock 都是測(cè)試專用名詞,Stub 常被翻譯為樁,spies 是 Spy 的復(fù)數(shù)形式,是一種可以監(jiān)視方法、調(diào)用和參數(shù)的技術(shù)]。它不依賴任何東西,可以配合任何單元測(cè)試框架工作。
06. Karma
Karma 是針對(duì)連通瀏覽器的一個(gè)框架無關(guān)測(cè)試運(yùn)行器。每一個(gè)測(cè)試結(jié)果對(duì)應(yīng)每個(gè)瀏覽器,它的測(cè)試和顯示都是通過命令行暴露給開發(fā)者的,這樣他們就可以看到瀏覽器測(cè)試的通過或失敗。
07. Selenium
Selenium 有一個(gè)簡(jiǎn)單的目標(biāo):就是自動(dòng)化瀏覽器。它主要用于自動(dòng)化測(cè)試 web 應(yīng)用程序,但是只是很簡(jiǎn)單地考慮到了基于網(wǎng)絡(luò)的管理任務(wù)。
08. WebdriverIO
WebdriverIO 允許用戶僅添加幾行代碼就可以控制瀏覽器或移動(dòng)應(yīng)用程序,使測(cè)試代碼更簡(jiǎn)單、簡(jiǎn)潔、易讀。集成的 TestRunner 同樣允許你以同步的方式調(diào)用異步命令,這樣你不需要關(guān)心如何處理 Promise 以避免競(jìng)態(tài)條件。此外,它取消了所有的繁瑣的設(shè)置工作,并且會(huì)為您管理的 Selenium 會(huì)話。
09. Nightwatch
Nightwatch.js 是一個(gè)易于使用的 Node.js,它是為基于瀏覽器的 app 和網(wǎng)站設(shè)計(jì)的終端到終端(E2E)的測(cè)試方法。它使用強(qiáng)大的 W3C WebDriver API ,用于在 DOM 元素上執(zhí)行命令和斷言。
10. PhantomCSS
PhantomCSS 獲得 CasperJS 捕獲的屏幕截圖,并使用 Resemble.js 將其與基準(zhǔn)圖進(jìn)行對(duì)比,以測(cè)試 RGB 像素差異。 PhantomCSS 然后生成圖像差異對(duì)比,用于幫助您找到原因。
11. PhantomFlow
PhantomFlow 使用決策樹提供 UI 測(cè)試方案。針對(duì) PhantomJS, CasperJS 和 PhantomCSS 的 NodeJS 包裝器—— PhantomFlow 能夠流暢地在代碼中描述用戶流程,同時(shí)生成用于可視化的結(jié)構(gòu)化樹數(shù)據(jù)。
12. Percy.io
Percy 提供關(guān)于視覺變化的迭代及快速反饋,帶來了所謂的連續(xù)視覺集成。它是通過下面方式實(shí)現(xiàn)的:運(yùn)行測(cè)試套件,獲取 DOM 快照并上傳到 Percy 服務(wù),最終在瀏覽器中渲染之。
英文原文:12 must-have code testing tools 譯文:https://www.oschina.net/translate/12-must-have-user-testing-tools
相關(guān)文章
webpack打包node.js后端項(xiàng)目的方法
本篇文章主要介紹了webpack打包node.js后端項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03JS中數(shù)組與對(duì)象的遍歷方法實(shí)例小結(jié)
這篇文章主要介紹了JS中數(shù)組與對(duì)象的遍歷方法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript針對(duì)數(shù)組與對(duì)象遍歷操作相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下2018-08-08JavaScript實(shí)現(xiàn)shuffle數(shù)組洗牌操作示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)shuffle數(shù)組洗牌操作,結(jié)合實(shí)例形式分析了javascript數(shù)組的定義、構(gòu)造、排序等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01如何使用moment.js獲取本周、前n周、后n周開始結(jié)束日期及動(dòng)態(tài)計(jì)算周數(shù)
使用了momentjs之后發(fā)現(xiàn)這個(gè)日期處理控件實(shí)在是太強(qiáng)大了,下面這篇文章主要給大家介紹了關(guān)于如何使用moment.js獲取本周、前n周、后n周開始結(jié)束日期及動(dòng)態(tài)計(jì)算周數(shù)的相關(guān)資料,需要的朋友可以參考下2022-09-09js AppendChild與insertBefore用法詳細(xì)對(duì)比
本篇文章主要是對(duì)js中AppendChild與insertBefore的用法進(jìn)行了詳細(xì)的對(duì)比。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12JavaScript內(nèi)存管理與閉包實(shí)例詳解
不管什么樣的編程語言,在代碼的執(zhí)行過程中都是需要給它分配內(nèi)存的,下面這篇文章主要給大家介紹了關(guān)于JavaScript內(nèi)存管理與閉包的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06