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引导程序
Oct 26 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
后台获取ZTREE选中节点的方法
Feb 12 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
详解webpack+express多页站点开发
Dec 22 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
Vue动态路由缓存不相互影响的解决办法
Feb 19 Javascript
JS左右无缝轮播功能完整实例
May 16 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
Dec 17 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 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新手上路(八)
2006/10/09 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
php compact 通过变量创建数组
2016/11/15 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python学习入门细节知识点
2018/03/29 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
如何给Python代码进行加密
2020/01/10 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
暑假实习求职信范文
2013/09/22 职场文书
大学毕业的自我鉴定
2013/10/08 职场文书
职业生涯规划怎么写
2013/12/29 职场文书
党员倡议书
2015/01/19 职场文书
学校端午节活动总结
2015/02/11 职场文书
护士求职简历自我评价
2015/03/10 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
如何使用PyCharm及常用配置详解
2021/06/03 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL