复制代码 代码如下:(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); });
推荐阅读
javascript event 事件解析
event对象只在事件发生的过程中才有效。 event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。 例子 下面的例子检查鼠标是否在链接上单击,并且>>>详细阅读
本文标题:kmock javascript 单元测试代码
地址:http://www.17bianji.com/kaifa2/JS/24943.html
1/2 1