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 相关文章推荐
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
jquery实现提示语淡入效果
May 05 jQuery
React-Router如何进行页面权限管理的方法
Dec 06 Javascript
vue 组件中slot插口的具体用法
Apr 03 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 Javascript
vue解决一个方法同时发送多个请求的问题
Sep 25 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
vue 图片裁剪上传组件的实现
Nov 12 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 批量删除数据的方法分析
2009/10/30 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
python如何实现视频转代码视频
2019/06/17 Python
python定位xpath 节点位置的方法
2019/08/27 Python
python可视化实现KNN算法
2019/10/16 Python
python如何查看网页代码
2020/06/07 Python
什么是python的函数体
2020/06/19 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
竞职演讲稿范文
2014/01/11 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书