0

我有一对document.write()用于改变 DOM 的实用程序函数,注入加载 JavaScript 和 CSS 的标签。

是否可以使用 QUnit 来测试注入是否正确发生而不会影响测试结果页面的实际 DOM?

我可以:

  • 覆盖document.write(),也许 insetup并重置它teardown,成为我定义的函数。但是他们我并没有测试document.write()他们应该做的事情。

  • 使用 js-test-driver 之类的东西让 JavaScript 从命令行运行(尽管我真的希望有可用的测试结果页面)。

  • 为这些实用程序测试创建一个单独的测试结果页面,以便这些结果不会以任何方式、形状或形式影响其他测试(尽管我真的想要一个统一的页面)。

  • 传递实用程序函数以加载空 JS 和 CSS 文件,这样它们实际上不会影响结果页面。

所以我有选择。

但我真正想要的是制作document一些文档,而不是实际的当前文档。我不确定这是可能的。(事实上​​,我什至不确定这是否有意义。)这可能吗?似乎我可以用 iframe 或类似的东西来做一些事情。

如果它有帮助,这里有一个我想要单元测试的函数类型的例子:

function(jsFile){
    document.write('<script type="text/javascript" src="'+jsFile+'"></script>');
}
4

1 回答 1

0

我意识到我不需要测试document.write()。我只需要测试我的代码是否发送了预期的内容document.write()。所以我选择了上面的第一个选项,在测试document.write()中临时重新定义。setup()teardown()

于 2011-10-18T02:46:27.140 回答