QUnit - 测试搜索框

时间:2015-09-13 10:14:20

标签: javascript html qunit

我正在尝试测试与jquery plugin非常相似的自定义query-ui.autocomplete。一旦应用于输入元素,它就能够根据.input-box中的内容搜索db表中的条目。一旦javascript在DB中找到任何匹配项,它就会在.suggestion-box下生成另一个元素.input-box。并使用所有结果填充.suggestion-box元素。

我的意图是:

  • 在'.input-box'
  • 上手动触发点击事件
  • 检查'.suggestion-box'是否有'li'元素。

输入元素:

<input class="widget input-box default" id="" type="text" value="type a car name">

搜索功能本身正在按预期工作,只是我想使用 QUnit 运行几个测试。

到目前为止,我只有这个:

QUnit.module( "group B" );
QUnit.test( "a test", function( assert ) {
  assert.expect( 1 );
  var $input_box =  $(".widget.input-box" );
  $input_box.on( "click", function(e) {
    assert.ok( true, "Input-box was clicked" );
    console.log($('ul', $(".suggestion-box")).length);
  });
  $input_box.val('B')
  $input_box.click();
});

运行之后,我可以清楚地看到“click”事件被正确触发以及搜索功能。即使它返回了一些结果,QUnit测试仍然报告零结果。

有没有办法纯粹使用 Qunit 进行测试,还是需要使用其他任何插件?

1 个答案:

答案 0 :(得分:0)

我想唯一的方法就是检查.input-box元素的事件,看看搜索结束的时间。

$input_box.on( "search:complete", function(e){
   assert.ok($('ul', $suggestion_box).length > 0, "The number of entries is greater than 0." );
});