jquery - 在单元测试时阻止 document.ready() 函数

标签 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()函数会创建一堆我不想在单元测试中 float 的对象,但我仍然需要测试foo.bar()和Main中的其他函数.js。我可以重写ready()回调吗?或者一般有更好的解决方案吗?谢谢!

最佳答案

你可以这样做,在加载 jQuery 文件后,你可以检查它是否进行单元测试,然后应用它

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

但只是在测试时使用它。

关于jquery - 在单元测试时阻止 document.ready() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8734168/

相关文章:

javascript - 保持谷歌地图标记在所有视口(viewport)中居中

javascript - 发送客户端其他玩家的分数? Socket.io

javascript - 用于检索 Podio 项目的 http 请求的完整 URI

javascript - Safari 上的 JSONP 错误

java - 使用 hamcrest 检查列表是否包含特定顺序的类实例

javascript - jquery ajax无法解析有效的json

python - 使用 ImageField 对 Django ModelForm 进行单元测试,测试显示无效表单

unit-testing - Gradle测试任务-Gradle 1.6以及Gradle 2.3或更高版本

c# - 在 C# 中,如何对客户端用户交互和 javascript (jQuery) 代码进行单元测试?

unit-testing - Android NDK 上的单元测试