您的位置:首页 > Web前端 > JavaScript

kmock javascript 单元测试代码

2011-02-06 00:00 483 查看
(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.jb51.net/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); 

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: