【发布时间】:2009-11-25 01:43:20
【问题描述】:
目前我正在对以下代码进行单元测试:
if ($(selectedElement).innerText == 'blah')
{
// do something
}
其中 selectedElement 是从 UI 中选择的锚对象。
在我的测试代码中,我创建了一个 DOM 结构,该结构的锚点位于适当的位置以供选择。这里的问题是,由于 selectedElement 本来是一个 javascript 对象,所以我需要将我从 DOM 结构(它是一个 JQuery 对象)中得到的锚转换为上述条件。
我尝试了以下方法,但没有成功:
// DOM structure using HtmlDoc
/*:DOC += <span id='testSpan' class='testSpanClass'><a href='#' id='selectedElem'>blah</a></span> */
selectedElement = $('#selectedElem')[0];
我的目标是能够使用普通的 Javascript 对象来满足条件,并且还能够将其切换回 jQuery 对象来满足函数后面的条件。但如果有更好的方法,我会试一试。
有人对如何解决这个问题有任何想法吗?
编辑:是否有不需要更改代码的解决方案? selectedElement 实际上是一个全局变量。
谢谢。
【问题讨论】:
-
+1 用于对代码进行单元测试 :)
-
$(selectedElement).innerText 是无效代码.. $(selectedElement) 是一个包装的对象集/数组.. innerText 不是那个属性.. 使用 $(selectedElement).text( )
标签: javascript jquery unit-testing