前端现在日益壮大,再也不是那个只是写写页面,调调样式的小员工了,现在前端工程师要做的能做的太多了。
那么多框架使我们的开发越来越快,效率越来越高,高产率下也需要强大的测试工具保证我们的代码功能完美。
在现在推崇的函数式编程模式下,纯函数和业务分级,让我们的代码越来越好,维护和升级都很方便,基于这些函数式编程的代码我推荐一些好用的测试工具
单元测试(最小功能函数的输出值)
断言库(最小单元是否可用的),
- better-assert(TDD断言库)
- should.js(BDD断言库)
- expect.js(BDD断言库)
- chai.js(TDD,BDD双模断言库,使用最多)
- jasmine.js(BDD断言库)
- Node.js自身集成的require("assert")
- intern(比较大,功能比较全面的单元测试框架)
- qunit(jquery的测试框架)
- macaca(来自阿里巴巴,一套完整的自动化测试解决方案,少人维护)
注:
TDD(先写测试用例,再开发功能,测试值 = = 输入值,反了就会报错--国外用得多)
assert("我是测试值" = = 单元输出结果)
BDD(先写功能,再测试--国内比较多,基本都是业务驱动功能使用)
expect(1).toEqual(fn())
karma集成测试环境
karma自动化runner集成PhantomJS无刷新
cnpm i -g karma
cnpm i karma-cli --save-dev
cnpm i karma-chrome-launcher --save-dev
cnpm i karma-phantomjs-launcher --save-dev
cnpm i karma-mocha --save-dev
cnpm i karma-chai --save-dev
// 测试覆盖率的包,可生成测试报表
cnpm i karma-coverage --save-dev
e2e测试
- selenium-webdriver
- nightwatch(配置很麻烦,有很多JDK环境)
UI测试
- Phantomcss(不好用)
- BackstopJS
- f2etest(UI自动化录入,可以记录各种界面操作,生成相应的脚本代码,主要针对nightwatch使用)
service测试
- mocha
-
mochawesome:
- node后端:supertest(app.listen()),后面接接口方法(get,post)和path,再跟expect()测试接口的返回状态和返回数据的类型,最后需要end函数收尾,调用为链式
- 非node后端:fetch("地址路径"),在fetch回调函数操作测试结果
比较新的工具
- jest:项目绑定使用多,比如vuecli构建的项目,一站式解决所有测试
- rize是PhantomJS的替代品,PhantomJS已经不更新了
- puppeteer广泛用于爬虫或UI测试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。