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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
jQuery asp.net 用json格式返回自定义对象
Apr 07 Javascript
document.all的一个比较完整的总结及案例
Jan 31 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
Jul 21 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 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使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP代码优化技巧小结
2015/09/29 PHP
thinkPHP查询方式小结
2016/01/09 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
JS实现轮播图效果
2020/01/11 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
python设置随机种子实例讲解
2019/09/12 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
资料员的岗位职责
2013/11/20 职场文书
展会邀请函范文
2014/01/26 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android
Python如何将list中的string转换为int
2022/07/15 Ruby