SlideShare a Scribd company logo
苏河
单元测试的目标

• 函数

• 对象的属性和方法

• 业务逻辑
代码可测试性的问题
•面向过程,过程嵌套
•太多的dom操作
• 展现逻辑和业务逻辑混淆
•闭包,匿名函数
• 异步操作
综上
• 面向过程,过程嵌套
• 太多的dom操作
• 展现逻辑和业务逻辑混淆
• 闭包
• 异步操作
• ……
• 如何提升可测试性?


•抽象
抽象的原则

• 代码细分职责,粒度化,达到单元和过程
分离的目的
抽象的原则
• 将数据处理和dom分开
抽象的原则

• 避免使用闭包,如果要使用,请公开测试
接口,减少匿名函数的使用
抽象的原则

• 异步调用的函数可以用waitsfor保证执行顺
 序
• 继续提升可测试性


•分层
1. 构建Js本地对象

             2. 处理数据逻辑

Javascript   3. 与 Server 通信

             4. 添加事件回调

             5. 操作DOM,BOM
DOM            BOM

                     Javascript

        UI
                       Control
      Model



      Server
MVC对象结构
View                        Control
 obj           obj    obj   instantia
                            tion

        obj          obj    process

                            bindEvent

                            …
Model
 obj          obj
                     obj
        obj
ViewObj
_Attr:value1
                        1. 获取DOM,BOM数据
AttrEl:someEl
                        2. 修改DOM和BOM
getUIData:function(){
       //…
}                       3. 处理展现层逻辑
setUI:function(){
      //…
}
ModelObj
                      1. 建立业务数据模型
_Attr1:value1

_Attr2:value2         2. 处理数据间的逻辑关系
_Method:function(){

}
       //…
                      3. 提供数据访问器
Method:function(){
      //…             4. 预留数据事件接口
}
Control              1. 对象实例化
Var objUI = new View();
Var obj = new Model();
                          2. 初始化
Function Process1(){
       //…
}                         3. 定义过程,实现view
Function Process2(){
       //…
}                          和model层对接
E.on(someEl,’event’,
process1);                4. 事件绑定
第二部分
• 基于kelude平台的自动化单元测试
•Q&A

More Related Content

PPTX
前端测试
PPTX
JavaScript 闭包分享(一):传递参数
PPTX
5, initialization & cleanup
PDF
Jni攻略之八――操作对象的构造方法
PDF
Node.js开发体验
PPT
JAVA内存泄漏及诊断
PDF
Tcfsh bootcamp day2
PPT
前端测试
JavaScript 闭包分享(一):传递参数
5, initialization & cleanup
Jni攻略之八――操作对象的构造方法
Node.js开发体验
JAVA内存泄漏及诊断
Tcfsh bootcamp day2

What's hot (19)

PDF
單元測試:Mocha、Chai 和 Sinon
PPT
改善程序设计技术的50个有效做法
PDF
Java script closures
PPTX
异步编程与浏览器执行模型
PPTX
Scala再探
PDF
Ecmascript
PPTX
FMDB 研究
PDF
NeteaseBlog Objective-C Style Guide
PPTX
Excel vba實務應用 第3天
PPTX
JavaScript closures
PPTX
Java多线程设计模式
DOC
Java华为面试题
PPT
Javascript 培训第四节 深入了解
PDF
Node way
PPTX
Net 相依性注入 學習筆記 1.0
PPTX
Ecma script3
PDF
JavaScript 教程
PPTX
Glider
PPTX
流程語法與函式
單元測試:Mocha、Chai 和 Sinon
改善程序设计技术的50个有效做法
Java script closures
异步编程与浏览器执行模型
Scala再探
Ecmascript
FMDB 研究
NeteaseBlog Objective-C Style Guide
Excel vba實務應用 第3天
JavaScript closures
Java多线程设计模式
Java华为面试题
Javascript 培训第四节 深入了解
Node way
Net 相依性注入 學習筆記 1.0
Ecma script3
JavaScript 教程
Glider
流程語法與函式
Ad

Viewers also liked (8)

PPTX
Media for events: papers, TV, Digital...
PPT
Tetrapak CFC Program
PPT
Efectivo
PDF
2015 03 26 morozov nti presentation
PPT
Uni sim talk
PPT
Hanseatic League of a New Era: international collaboration for the developmen...
Media for events: papers, TV, Digital...
Tetrapak CFC Program
Efectivo
2015 03 26 morozov nti presentation
Uni sim talk
Hanseatic League of a New Era: international collaboration for the developmen...
Ad

Similar to Jasmine2 (20)

PPTX
前端测试
PPTX
Script with engine
PPTX
PDF
JCConf 2024 - Java 22 & 23 新功能介紹
PPTX
J engine -构建高性能、可监控的前端应用框架
PPTX
J engine -构建高性能、可监控的前端应用框架
PDF
Refactoring with Patterns in PHP
DOC
中远公司 Java培训资料
PDF
Spring 2.x 中文
PDF
Asp.net mvc網站的從無到有
PDF
Kissy design
PDF
Javascript primer plus
PDF
D2_node在淘宝的应用实践_pdf版
PPT
Node.js在淘宝的应用实践
PDF
淘宝交易平台前端重构
PPT
系統架構設計 Android
ODP
JavaScript Advanced Skill
PPTX
2, object oriented programming
PPTX
Nhibernate+sqlite測試實戰經驗分享
ODP
Backbone js and requirejs
前端测试
Script with engine
JCConf 2024 - Java 22 & 23 新功能介紹
J engine -构建高性能、可监控的前端应用框架
J engine -构建高性能、可监控的前端应用框架
Refactoring with Patterns in PHP
中远公司 Java培训资料
Spring 2.x 中文
Asp.net mvc網站的從無到有
Kissy design
Javascript primer plus
D2_node在淘宝的应用实践_pdf版
Node.js在淘宝的应用实践
淘宝交易平台前端重构
系統架構設計 Android
JavaScript Advanced Skill
2, object oriented programming
Nhibernate+sqlite測試實戰經驗分享
Backbone js and requirejs

More from tb-vertical-guide (7)

KEY
Linuxguide4f2e
PPT
Node分享 展烨
PPTX
Knockout js
PPTX
快速打包工具Quick build
PPTX
性能问题的快速定位
PPTX
Linuxguide4f2e
Node分享 展烨
Knockout js
快速打包工具Quick build
性能问题的快速定位

Jasmine2