异步队列
浏览器
微任务和宏任务
宏任务 | 微任务 |
---|---|
Node
- setImmediate setTimeout
- program.nextTick()
- process.nextTick() setImmdeiate
单元测试能够让开发者明确知道代码结果
单一职责
接口抽像
层次分离
断言库: 保证最小单元是否正常运行检测方法
测试分割:
测试驱动开发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
但是大部分微前端方案又不约而同放弃了 iframe 方案,自然是有原因的,并不是为了 “炫技” 或者刻意追求 “特立独行”。
如果不考虑体验问题,iframe 几乎是最完美的微前端解决方案了。
iframe 最大的特性就是提供了浏览器原生的硬隔离方案,
但他的最大问题也在于
其实这个问题之前这篇也提到过,这里再单独拿出来回顾一下好了。
Common