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 相关文章推荐
javascript 对象定义方法 简单易学
Mar 22 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
TextArea设置MaxLength属性最大输入值的js代码
Dec 21 Javascript
js中for in的用法示例解析
Dec 25 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
javascript如何创建对象
Aug 29 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
微信小程序 后台登录(非微信账号)实例详解
Mar 31 Javascript
JavaScript设置名字输入不合法的实现方法
May 23 Javascript
js 获取json数组里面数组的长度实例
Oct 31 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
jquery 选择器部分整理
2009/10/28 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
Python中的Numpy入门教程
2014/04/26 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
python抽取指定url页面的title方法
2018/05/11 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
Django之模型层多表操作的实现
2019/01/08 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
Python类继承和多态原理解析
2020/02/05 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
python标准库OS模块详解
2020/03/10 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
怎么样写好简历中的自我评价
2013/10/25 职场文书
公务员诚信承诺书
2014/05/26 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
Python读写yaml文件
2022/03/20 Python