单元测试时防止document.ready()函数

时间:2012-01-04 21:17:12

标签: jquery unit-testing

我正在使用jQuery 1.5和Q-Unit进行测试。

我正在处理的应用程序有一个文件,它充当应用程序运行程序,具有就绪函数和其他一些东西:

-Main.js -

...
var foo = new Object();
foo.bar = function () {
   /* function I'd like to test */
}
foo.ready = function () {
   /* sets up the app. I don't want this to run in my test! */
}
$(document).ready(function(){
   foo.ready();
});
...

运行ready()函数会创建一堆我不希望在单元测试中浮动的对象,但我仍需要测试foo.bar()和Main.js中的其他函数。我可以覆盖ready()回调吗?或者一般来说有更好的解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:2)

你可以这样做,加载jQuery文件后,你可以检查它的单元测试然后应用这个

$.fn.ready = function() { 
//any code here, or leave it blank and all ready method will call this method instead jQuery one 
}

但是在测试时只需使用它。