回答: 根据 SO 以外的人的建议:将 html 放入视图文件中,并将其注入到您的生产页面和 testRunner 页面中。问题解决了。
下面的问题以粗体显示
假设我有一个方法,当用户单击时,它会将元素向左移动 50px。
负责这个的功能是
function moveElemLeft($elem, iPxLeft){}
在我的测试脚本中,我基本上有:
test("test moves function left via css", 1, function(){
//get first elem in test fixture.
var $testFixture = $('#qunit-fixture').children().eq(0);
var beforeLeft = $testFixture.css('left');
moveElemLeft($testFixture, 50);
var afterLeft = $testFixture.css('left');
equal(beforeLeft-50, afterLeft);
});
在我的 testRunner HTML 中,我会有类似的东西
<head><script href="test.js" /></head>
<body>
<div id="qunit-fixture">
<div id="testChild" class="absolute no-margins">
</div></div>
</body>
----- 问题 ---- 我的函数在测试期间正确运行但在生产中不能正确运行的可能性是否很大,因为我在测试夹具中编写的 html 显然是微不足道的?使用与我的测试运行器 html 文件中相同的 html 不是更好吗?
但要做到这一点,这意味着在测试设置中,我必须将生产 html 文件中的 html 复制到测试运行程序文件中。这甚至可能吗?这里的最佳做法是什么?