【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疑问
- 下一篇: WEB项目 后台接收前端数组