狠狠撸
Submit Search
Jasmine2
?
Download as PPTX, PDF
?
0 likes
?
292 views
T
tb-vertical-guide
Follow
jasmine2 by su
Read less
Read more
1 of 23
Download now
Download to read offline
More Related Content
Jasmine2
1.
苏河
2.
单元测试的目标 ? 函数 ? 对象的属性和方法 ?
业务逻辑
3.
代码可测试性的问题
4.
?面向过程,过程嵌套
5.
?太多的诲辞尘操作
6.
? 展现逻辑和业务逻辑混淆
7.
?闭包,匿名函数
8.
? 异步操作
9.
综上 ? 面向过程,过程嵌套 ? 太多的dom操作 ?
展现逻辑和业务逻辑混淆 ? 闭包 ? 异步操作 ? ……
10.
? 如何提升可测试性? ?抽象
11.
抽象的原则 ? 代码细分职责,粒度化,达到单元和过程 分离的目的
12.
抽象的原则 ? 将数据处理和dom分开
13.
抽象的原则 ? 避免使用闭包,如果要使用,请公开测试 接口,减少匿名函数的使用
14.
抽象的原则 ? 异步调用的函数可以用waitsfor保证执行顺 序
15.
? 继续提升可测试性 ?分层
16.
1. 构建Js本地对象
2. 处理数据逻辑 Javascript 3. 与 Server 通信 4. 添加事件回调 5. 操作DOM,BOM
17.
DOM
BOM Javascript UI Control Model Server
18.
MVC对象结构 View
Control obj obj obj instantia tion obj obj process bindEvent … Model obj obj obj obj
19.
ViewObj _Attr:value1
1. 获取DOM,BOM数据 AttrEl:someEl 2. 修改DOM和BOM getUIData:function(){ //… } 3. 处理展现层逻辑 setUI:function(){ //… }
20.
ModelObj
1. 建立业务数据模型 _Attr1:value1 _Attr2:value2 2. 处理数据间的逻辑关系 _Method:function(){ } //… 3. 提供数据访问器 Method:function(){ //… 4. 预留数据事件接口 }
21.
Control
1. 对象实例化 Var objUI = new View(); Var obj = new Model(); 2. 初始化 Function Process1(){ //… } 3. 定义过程,实现view Function Process2(){ //… } 和model层对接 E.on(someEl,’event’, process1); 4. 事件绑定
22.
第二部分 ? 基于kelude平台的自动化单元测试
23.
?Q&A
Download