测试

单元测试

单元测试能够让开发者明确知道代码结果

单一职责
接口抽像
层次分离
断言库: 保证最小单元是否正常运行检测方法
测试分割:
测试驱动开发TDD: 关注所有功能是否被实现

better-assert

行为驱动开发BDD 关注整体行为是否符合整体预期

should.js
expect.jsp
Jasmine.js

chai.js

Node.js require(“assert”)

单元测试运行流程
每一个测试用例组都通过describe进行设置
before
beforeEach
it expect(x).to.equal(true)
异步mocha ,mock
after
afterEach

自动化单元测试

karma 自动化runner集成 PhantomJS无刷新

npm install karma-cli -save-dev

npm install karma-chrome-lanucher –save-dev

npm install karma-phantomjs-launcher –save-dev

npm install karma-mocha –save-dev

npm insgall karma-chai

报告和单元测试覆盖率检查

npm   install karma-coverage –save-defineReactive

coverageReport(type: “html”, dir: ‘coverage/‘)

性能测试

基准测试

面向切面编程AOP无侵入式统计

Benchmark基准测试方法,他并不是简单的统计执行多少次测试代码对比时间,他对测试有着严格的抽样过程,执行多少次取决于采样到的数据能否完成统计,根据统计次数计算方差。

压力测试

PV网站当日访问人数
UV独立访问人数

QPS = PV/t;

ab  -c 100 -n 100 http://localhost:8010

安全测试

XSS
SQL
CSRF

功能测试

selenium-webdirver
protractor selenium-standalone
http://webdirver.io/post
冒烟测试 SmokeTest
回归测试

jsLint JsHint