我有一对实用程序函数,使用document.write()
来改变DOM,注入加载JavaScript和CSS的标记。
是否可以使用QUnit测试注入是否正确发生而不会影响测试结果页面的实际DOM?
我可以:
覆盖document.write()
,可能在setup
中并在teardown
中重置,以作为我定义的函数。但是他们我没有测试对document.write()
的调用做了他们应该做的事情。
使用类似js-test-driver之类的东西从命令行运行JavaScript(虽然我真的想让测试结果页面可用)。
为这些实用程序测试创建一个单独的测试结果页面,以便这些结果不会以任何方式,形状或形式影响其他测试(尽管我真的想要一个统一的页面)。
传递实用程序函数清空JS和CSS文件以加载,这样它们实际上不会影响结果页面。
所以我有选择权。
但我真正想要的是是使document
成为实际当前文档以外的其他文档。我不确定这是可能的。 (事实上,我甚至不确定它是否有意义。)这可能吗?这似乎是我可以用iframe或类似的东西做的事情。
如果它有帮助,这里是我想要进行单元测试的函数类型的一个例子:
function(jsFile){
document.write('<script type="text/javascript" src="'+jsFile+'"></script>');
}
答案 0 :(得分:0)
我意识到我不需要测试document.write()
。我只需要测试我的代码是否正在向document.write()
发送预期的内容。所以我选择了上面的第一个选项,暂时在document.write()
和setup()
中重新定义teardown()
以进行测试。