关注单元测试有一段时间了,也做了些尝试然后就停了下来,寻找框架、方法、各种尝试

看得多,尝试的少,

关于框架分为两类,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 与约定的更多相关文章

  1. Java Hour 60 逃不开的GC

    第一个大家都应该知道的概念就是应用程序中不断的new 分配了内存,却没有显式的代码去清理内存,而执行这个清理过程的自动垃圾回收的过程就叫做GC. 但是,JVM 说明并没有要求一定要有GC,JVM 说明 ...

  2. 到头来还是逃不开Java - Java13程序基础

    java程序基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来. ...

  3. 到头来还是逃不开Java - Java13核心类

    Java13核心类 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来 ...

  4. 到头来还是逃不开Java - Java13面向对象基础

    面向对象基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来.所以 ...

  5. Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用

    在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架.但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等 ...

  6. 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法

    最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...

  7. Web应用架构的新趋势

    系统架构:Web应用架构的新趋势---前端和后端分离的一点想法   最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前 ...

  8. 贝叶斯vs频率派:武功到底哪家强?| 说人话的统计学·协和八(转)

    回我们初次见识了统计学理论中的“独孤九剑”——贝叶斯统计学(戳这里回顾),它的起源便是大名鼎鼎的贝叶斯定理. 整个贝叶斯统计学的精髓可以用贝叶斯定理这一条式子来概括: 我们做数据分析,绝大多数情况下希 ...

  9. 想进BAT?这些面试题助你一臂之力

    1 软性热身题 这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路.这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会 ...

随机推荐

  1. [Nhibernate]sqlite数据库基本使用

    目录 写在前面 操作步骤 总结 写在前面 昨天有朋友问我在nhibernate中如何使用sqlite数据库,当时实在忙的不可开交,下周要去山西出差,实在没空,按我的说法使用sqlite跟使用sqlse ...

  2. Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)

    功能说明 输入文件路径,在浏览器输出文件预览信息,经测试极速(Chrome).IE9.Firefox通过 分类文件及代码说明  DemoFiles 存放可测试文件 Default.aspx  启动页 ...

  3. tyvj1114 搭建双塔

    描述     2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔.    Mr. F有 ...

  4. MySQL中find_in_set()和in的区别

    弄个测试表来说明两者的区别 CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NUL ...

  5. ms-dos中 MSCDEX命名语法详解

    一.MSCDEX的语法及参数:        MSCDEX可以在AUTOEXEC.BAT文件中自动加载,也可以在DOS的命令行中载入但要使用光驱,前提条件是在Config.sys文件中加载了光驱的驱动 ...

  6. setTimeout和setInterval的注意事项

    精准问题 setTimeout的问题在于它并不是精准的,例如使用setTimeout设定一个任务在10ms后执行,但是在9ms后,有一个任务占用了5ms的cpu时间片,再次轮到定时器执行时,时间已经过 ...

  7. 各大搜索引擎智能提示API(JSONP跨域实现自动补全搜索建议)

    ---------------------------------------搜索引擎JSONP接口--------------------------------------------- 提示:U ...

  8. mac mysql cmd

    sudo /usr/local/mysql/support-files/mysql.server start sudo /usr/local/mysql/support-files/mysql.ser ...

  9. Linux pthread

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h& ...

  10. tp5 中 model 的新增方法

    //默认主键为自动识别,如果需要指定,可以设置属性: namespace app\index\model; use think\Model; class User extends Model { pr ...