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

标签 javascript jquery unit-testing qunit

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

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

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

编辑:

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

谢谢。

最佳答案

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

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

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

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

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

ok 函数执行一个 bool 断言,相当于 JUnit 的 assertTrue。

关于javascript - 如何对 jQuery 选择器进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647496/

相关文章:

javascript - 如何在echarts中的bars中添加自定义文字并修改hover的颜色?

python - 许多 pytest 固定装置与一个大型 "container"固定装置

python - 给定源代码,如何使用 CFFI 调用现有的 C 函数?

JavaScript - 与 toString() 相反?

javascript - anime.js 在 Ionic 3 项目中不起作用

javascript - 在 Bootstrap 中 toast 动画

ruby-on-rails - 如何向已完成的 Rails 应用程序添加测试?

javascript - Ember.js anchor 链接

jquery - 将特定样式从一个元素复制到另一个元素

jQuery UI-Slider 没有 'live' 效果和 CSS 样式