【node测试系列】几款前端测试断言库(Assertions lib)的选型总结
參考文章 http://blog.lvscar.info/post/...
在編寫前端測試代碼的過程中, 幾乎所有的測試框架都提供了根據功能、模塊(module ,spec )來切分測試用例的設計, 由于測試代碼簡單,直接,直接反應API的特點,我們編寫測試代碼的體驗很大程度上取決于所選用的斷言庫, 以下是我對目前幾款主流斷言庫的選型分析筆記:
better-assert
C-style TDD 斷言庫
由TJ Holowaychuk 發起
目前Github上的有 : 131 star 14 fork
API 樣例
assert('tobi' == user.name) assert('number' == typeof user.age)should.js
BDD 風格斷言庫
同樣由 TJ Holowaychuk 發起
目前Github上的數據: 384 Star , 200 fork ( TJ放棄維護后由新開發者接手)
API樣例
foo.should.be() bar.should.have() foo.should.bot.be()expect.js
追求極簡的 BDD 風格斷言庫
基于 should.js 簡化
目前Github上的數據: 926 star 135 fork
API樣例
expect(foo).to.be() expect(foo).to.eql() expect(foo).to.be.a() expect(foo).not.to.be.an()chai
BDD/TDD 雙模 ,同時支持 should / expect / assert 三種風格的斷言庫
強大插件機制chai-webdriver
Github上的數據1559 star 150 fork
API樣例:
should style: foo.should.be.a() expect style: expect(foo).to.be.a() // 近Jasmine風格 assert style: assert.equal(foo, 'bar')其他
Jasmine.js 測試框架中的斷言庫十分類似 Chai expect和 expect.js ( Jasmine歷史比前兩者悠久).
assert 風格最保守 , should 風格需要修改prototype 最為激進。
不考慮Node環境的話,Jasmine.js是好選擇
我目前傾向于 Mocha + Chai 的測試方案
總結
以上是生活随笔為你收集整理的【node测试系列】几款前端测试断言库(Assertions lib)的选型总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gradle疑问
- 下一篇: webpack 环境安装