如何对jQuery选择器进行单元测试?

Ber*_*Cim 2 javascript jquery unit-testing qunit

只是一个简单的问题......我目前有以下带有选择器的jQuery代码.

var ID = "idControl"
function doesTreeViewExist()
{
    if($('#' + ID).length == 0)
    {
        return false;
    }
    else
    {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用QUnit编写测试来测试选择器?更具体地说,我在提出语法/代码时遇到了麻烦.

编辑:

好吧,假设现在我想模拟选择器调用,因为我无法访问实际的网站.我正在使用JsTestDriver作为我的测试工具,这意味着我无法触摸运行测试的浏览器(否则测试运行将停止).在这种情况下怎么样?我怎么可能测试代码?

谢谢.

CMS*_*CMS 8

您发布的功能可以大大简化:

var ID = "idControl";
function doesTreeViewExist() {
  return !!$('#' + ID).length;
}
Run Code Online (Sandbox Code Playgroud)

使用!!构造(双按位NOT),将length属性转换为布尔值,false仅当长度为零时才返回.

说到qUnit,您可以轻松设置如下的简单测试:

test("Your selector test", function() {
  ok($('#idControl').length > 0, "idControl exists");
  // or simply
  ok($('#idControl').length, "idControl exists");
});
Run Code Online (Sandbox Code Playgroud)

ok函数执行布尔断言,相当于JUnit的assertTrue.