使用QUnit测试使用document.write()的实用程序函数:使文档对象成为其他文档
Using QUnit to test utility functions that use document.write(): Make document object be some other document?
我有一对使用document.write()
来更改DOM的实用程序函数,注入加载JavaScript和CSS的标记。
是否可以使用QUnit来测试注入是否正确发生,而不会影响测试结果页面的实际DOM ?
I can:
-
覆盖
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>');
}
我意识到我不需要测试document.write()
。我只需要测试我的代码是否发送了一些预期的document.write()
。所以我选择了上面的第一个选项,在setup()
和teardown()
中临时重新定义document.write()
进行测试。
相关文章:
- 将文档实体传递给JavaScript函数
- 使用window[variablename]()调用函数;在文档中.准备
- 函数不't在jquery文档就绪时执行
- 如何从 html 文档中调用 yahoo weather api javascript 函数
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- 使用 JQuery 修改函数写入文档的数据
- 在 $( 文档 ).ready 函数中使用字符串名称调用 javascript 函数
- 将文档对象传递给函数
- 这个文档语法在MDN中对JavaScript函数意味着什么
- 为什么不是'我的函数未按预期在文档加载时运行
- 挂钩文档.使用函数原型创建元素
- 如何在文档准备函数中调用变量的click函数
- window.opener调用函数给了我一个文档.getElementById(..)为null
- JavaScript:从子html文档调用函数
- 为什么要重置文档getter函数
- Javascript:如何在函数运行完成之前对文档进行更改
- 如何通过函数动态更改文档标题
- 为什么当文档加载 jQuery 时我不能直接调用函数
- 保存文档()函数从NSIWebBrowserPersist
- 了解jQuery文档-函数参数