我刚刚开始使用JS Unit Testing并且正在尝试使用qUnit。
当我的JS执行时(通过它的init()函数),它从页面中抓取一些JS正常运行所需的节点。
目前我的qUnit测试在启动之前就失败了,因为它在测试html文件中找不到那些节点。
我根本没有在我的JS中使用jQuery(没有框架)。
我已经做了一些调查,这意味着我应该将我的页面上的iframe加载到test.html页面上。然后我需要用iframe.document或类似的东西替换文件,对吧?
这可能吗?我该怎么做才能使我的document.getElementById()不会失败。听起来我需要设置本地test.html的上下文与iframe的上下文相同(窗口,文档等明智,至少,所以它可以引用相同的节点)。
有什么想法吗?
答案 0 :(得分:3)
是的,据我所知,您提到的文档节点是测试数据。 QUnit unit-test.html
页面包含<div id='qunit-fixture'
,您的测试数据应该是您的位置。
到目前为止,我已经度过了QUnit测试纯JS的好时机,它完全与UI分离,单元测试也有助于分离。
但是,对于更多与UI相关的内容,您可能需要了解JQuery UI如何使用QUnit。请参阅accordion widget unit tests