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 相关文章推荐
JS操作Cookies包括(读取添加与删除)
Dec 26 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
javascript折半查找详解
2015/01/26 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
Python的高级Git库 Gittle
2014/09/22 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
python执行精确的小数计算方法
2019/01/21 Python
python实现AES加密和解密
2019/03/27 Python
Python错误的处理方法
2020/06/23 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
2014年小学少先队工作总结
2014/12/18 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
早恋主题班会
2015/08/14 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
HTML+JS实现在线朗读器
2022/02/15 Javascript