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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
jquery text()要注意啦
Oct 30 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
node.js中的emitter.on方法使用说明
Dec 10 Javascript
jQuery中cookie插件用法实例分析
Dec 04 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
vue项目实战总结篇
Feb 11 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
js+canvas实现刮刮奖功能
Sep 13 Javascript
关于对TypeScript泛型参数的默认值理解
Jul 15 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
B2K与车机的中波PK
2021/03/02 无线电
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
js实现日期级联效果
2014/01/23 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
python数组循环处理方法
2019/08/26 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
金智子午JAVA面试题
2015/09/04 面试题
医药工作者的求职信范文
2013/09/21 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
2015年暑假工作总结
2015/07/13 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android