在运行我的 QUnit 测试套件时,我(第一次)检查了“Check for Globals”标志,一个测试变成了红色,因为我引入了一个全局变量,如下所示:
window.jQuery110007089870080817491
该名称与 $.expando 属性相同,并且看起来像是某种唯一标识符。
我已尝试调试测试,但无法确定何时将此属性添加到窗口对象。
我想知道是否有人知道这是什么,它的用途,以及什么会导致它被添加(而不是删除)到窗口对象。
谢谢
/维克托
编辑:
发生这种情况时,我设法创建了一个最小的示例,这似乎是 jquery-ui 的问题。
<html>
<head>
<title>Unit Tests</title>
<link rel="stylesheet" href="css/lib/qunit/qunit-1.11.0.css" type="text/css" media="screen">
<script type="text/javascript" src="js/lib/qunit/qunit-1.11.0.js"></script>
<script type="text/javascript" src="js/lib/jquery/jquery-1.10.0.js"></script>
<script type="text/javascript" src="js/lib/jquery/jquery-ui-1.10.3.custom.js"></script>
<script>
$(function() {
test("Test spinner", function() {
$("#spinner").spinner();
ok(true);
})
});
</script>
<body>
<h1 id="qunit-header">QUnit Test Suite</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
<input id="spinner" />
</div>
</body>
</html>
当 QUnit Check for Globals 标志打开时,这(以及修改 jquery-ui 小部件的其他测试)将失败。我尝试在激活此标志的情况下运行 jquery-ui 自己的测试套件,但他们的测试也失败了。
如果有人对此有解决方法,那就太好了,否则我想我将不得不在运行涉及 jquery-ui 的单元测试时禁用 Check for Globals。