参考文章 http://blog.lvscar.info/post/...html
在编写前端测试代码的过程当中, 几乎全部的测试框架都提供了根据功能、模块(module ,spec
)来切分测试用例的设计, 因为测试代码简单,直接,直接反应API
的特色,咱们编写测试代码的体验很大程度上取决于所选用的断言库, 如下是我对目前几款主流断言库的选型分析笔记:前端
C-style TDD
断言库git
由TJ Holowaychuk 发起github
目前Github上的有 : 131 star 14 forkweb
assert('tobi' == user.name) assert('number' == typeof user.age)
BDD
风格断言库框架
一样由 TJ Holowaychuk 发起post
目前Github上的数据: 384 Star , 200 fork ( TJ放弃维护后由新开发者接手)测试
foo.should.be() bar.should.have() foo.should.bot.be()
追求极简的 BDD
风格断言库prototype
基于 should.js
简化插件
目前Github上的数据: 926 star 135 fork
expect(foo).to.be() expect(foo).to.eql() expect(foo).to.be.a() expect(foo).not.to.be.an()
BDD/TDD
双模 ,同时支持 should / expect / assert
三种风格的断言库
强大插件机制
chai-webdriver
Github上的数据1559 star 150 fork
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
的测试方案