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数组去重的两种方法推荐
Apr 05 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
自制简易打赏功能的实例
Sep 02 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
May 31 Javascript
详解JavaScript函数callee、call、apply的区别
Mar 08 Javascript
详解vue中axios请求的封装
Apr 08 Javascript
JavaScript工具库之Lodash详解
Jun 15 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
JS实现图片懒加载(lazyload)过程详解
Apr 02 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 Javascript
JS猜数字游戏实例讲解
Jun 30 Javascript
如何使用vue3打造一个物料库
May 08 Vue.js
一次失败的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数据缓存技术
2007/02/14 PHP
PHP array_push 数组函数
2009/12/26 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
详细介绍Ruby中的正则表达式
2015/04/10 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python configparser模块应用过程解析
2020/08/14 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
优秀士兵个人事迹材料
2014/01/19 职场文书
文明学生事迹材料
2014/01/29 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
安全例会汇报材料
2014/08/23 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书