kmock javascript 单元测试代码


Posted in Javascript onFebruary 06, 2011
(function () { 
var KMock = window.KMock = function () { } 
KMock.prototype.setup = function (methodName) { 
var instance = this; 
instance[methodName] = { 
returnAs: function (fn) { 
instance["_" + methodName] = function () { 
instance[methodName].invokeNum++; 
fn.call(); 
} 
}, 
isVerify: function (exceptNum) { 
if (exceptNum != null) { 
return exceptNum == instance[methodName].invokeNum; 
} 
else { 
return instance[methodName].invokeNum > 0; 
} 
}, 
invoke: function () { 
instance["_" + methodName].call(); 
}, 
invokeNum: 0 
}; 
return instance[methodName]; 
} 

})(); 
//自己写了个mock类,暂时是用来模拟函数,然后判断函数的调用次数,以下是用法 
<BR><DIV class=cnblogs_Highlighter><PRE class=brush:javascript>/// <reference path="Flight.js" /> 
/// <reference path="http://demo.3water.com/jslib/qunit/qunit.js" /> 
/// <reference path="KMock.js" /> 

module("enter coin"); 
test("enter coin while game has not yet start", function () { 
var flight = new KFlight(); 
var mock = new KMock(); 
mock.setup("draw").returnAs(function () { 
}); 
flight.draw = mock.draw.invoke; 

equal(flight.coinNum, 0); 
equal(flight.gameState, 0); 
flight.coinEnter(); 
equal(flight.coinNum, 0); 
equal(flight.gameState, 1); 

equal(mock.draw.isVerify(1), true); 
});
Javascript 相关文章推荐
Opacity.js
Jan 22 Javascript
javaScript parseInt字符转化为数字函数使用小结
Nov 05 Javascript
javascript-简单的计算器实现步骤分解(附图)
May 30 Javascript
javascript 终止函数执行操作
Feb 14 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
纯javascript实现自动发送邮件
Oct 21 Javascript
浅谈js数据类型判断与数组判断
Aug 29 Javascript
微信小程序 触控事件详细介绍
Oct 17 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
express框架下使用session的方法
Jul 31 Javascript
一次失败的jQuery优化尝试小结
Feb 06 #Javascript
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 #Javascript
基于jQuery的自动完成插件
Feb 03 #Javascript
jQuery初学:find()方法及children方法的区别分析
Jan 31 #Javascript
javascript event 事件解析
Jan 31 #Javascript
javascript getElementsByTagName
Jan 31 #Javascript
js对象数组按属性快速排序
Jan 31 #Javascript
You might like
PHP自定义多进制的方法
2016/11/03 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python 基础知识之字符串处理
2017/01/06 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
wxPython多个窗口的基本结构
2019/11/19 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python txt文件如何转换成字典
2020/11/03 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
医药销售求职信范文
2014/02/01 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
英文慰问信范文
2015/03/24 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
如何Python使用re模块实现okenizer
2022/04/30 Python