单元测试 逃不开的Done 与约定
关注单元测试有一段时间了,也做了些尝试然后就停了下来,寻找框架、方法、各种尝试
看得多,尝试的少,
关于框架分为两类,1是自动化测试工具类,1是js单元测试框架
关于自动化测试工具我尝试了http://totorojs.org/
阿里巴巴的测试工具,为什么尝试这个呢?看了些资料,安装部署都挺简单的,最重要的是基于NODEjs开发的,通过node安装很方便的
其他工具,查阅资料,仅仅是安装和部署都挺费劲的
totorojs 支持同时测试多个浏览器,默认支持js测试框架jasmine和mocha
js 的单元测试 难就难在 1 如何划分颗粒度、2异步回调
因为异步回调的原因,划分颗粒度也变的比后端程序难上加难,至于js模块之间的依赖,也是让单元测试变的复杂的一部分
遗憾的是到现在,我都没有在具体的项目中写单元测试,除了写demo学习之外
目前我有几点点 觉得非常有必要进行测试
1 资源校验 例如 ajax请求服务器端的数据,判断格式是否合法,防止服务器端偷偷改格式 而我们不知道他们改了,BUG百出
要进行1 有数据库格式、2无数据格式、异常格式 判断
2 纯逻辑运算,这些运算应该都是同步执行的一些方法等
3 dom操作测试
4 用户行为和事件
我喜欢mocha。就是因为mocha完全满足了 这4个需求, 既可以运行在服务器端快速的进行资源校验类测试、纯逻辑测试
又可以配合totorojs 对多浏览器进行 dom操作测试、用户行为和事件测试
关于异步测试,我很郁闷,以前发现只要是异步测试都要传一个回调 方法进去,这等于说,以前写的方法NN的都无法测试了,不想后端,没写测试还可以补救,前端写了就死哪里了,没法补救了,于是开发看各种框架,是如何测试异步的,有没有不穿回调的。。。。。。。。。。。。
最后,我屈服了,
看了node的写法和约定,似乎一个方法第一个参数为异常时候的回调方法已经成为规范,然后也就释然了。
单元测试 逃不开的Done 与约定的更多相关文章
- Java Hour 60 逃不开的GC
第一个大家都应该知道的概念就是应用程序中不断的new 分配了内存,却没有显式的代码去清理内存,而执行这个清理过程的自动垃圾回收的过程就叫做GC. 但是,JVM 说明并没有要求一定要有GC,JVM 说明 ...
- 到头来还是逃不开Java - Java13程序基础
java程序基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来. ...
- 到头来还是逃不开Java - Java13核心类
Java13核心类 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来 ...
- 到头来还是逃不开Java - Java13面向对象基础
面向对象基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来.所以 ...
- Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用
在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架.但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等 ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- Web应用架构的新趋势
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法 最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前 ...
- 贝叶斯vs频率派:武功到底哪家强?| 说人话的统计学·协和八(转)
回我们初次见识了统计学理论中的“独孤九剑”——贝叶斯统计学(戳这里回顾),它的起源便是大名鼎鼎的贝叶斯定理. 整个贝叶斯统计学的精髓可以用贝叶斯定理这一条式子来概括: 我们做数据分析,绝大多数情况下希 ...
- 想进BAT?这些面试题助你一臂之力
1 软性热身题 这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路.这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会 ...
随机推荐
- linux REDHAT6.4下安装ArcGIS Server 10.1
1 安装环境 因为Linux的发行版本比较多,我们在使用的时候请严格按照官网给的给出的版本,在官网上给出的是经过严格测试的,如果采用其他的,即便安装上了,在后续的运作中出现问题,这个可就麻烦了,官网对 ...
- JS 工厂模式
1.什么是工厂模式 工厂模式是面向对象的设计模式,作用在于创建一个对象,mixin模式也是面向对象的设计模式,作用在于继承. 工厂模式定义一个接口,让实现这个接口的类来决定实例化哪个类,也就是说通过一 ...
- spark安装(实战)
sparksql+hive :http://lxw1234.com/archives/2015/06/294.htm 1,安装scala http://scala-lang.org/download/ ...
- MSYS2的源配置
关于MSYS2的文章可以参考下面的链接,笔者不多赘述: msys2安装笔记 MSYS2 + MinGW-w64 + Git + gVim 环境配置 msys2环境搭建 msys2安装g++: pacm ...
- Python 爬虫2
import urllib.request import os import re import time 设置头文件 head={} head['User-Agent'] ='Mozilla/5.0 ...
- UVA-11991 Easy Problem from Rujia Liu?
Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for ...
- Shell入门教程:流程控制(1)命令的结束状态
在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环 ...
- Shell入门教程:流程控制(4)case 条件判断
case的语法结构: case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac 命令区域,可以是单一指令或多行 ...
- Linux学习之一--VI编辑器的基本使用
vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...
- Android 图片滤镜工具——高斯模糊
===================高斯模糊========================= 创建一个 ImageFilter 类(滤镜工具),代码如下: import android.graph ...