在代码中启动Devbridge自动完成插件搜索

时间:2014-05-07 00:24:33

标签: javascript jquery unit-testing autocomplete jquery-autocomplete

我目前在表单上使用Devbridge autocomplete plugin。该插件运行良好,一切看起来都很好,我很开心,代码很开心,每个人都很开心。

然后进行了单元测试。我在我的应用程序中使用QUnit进行测试。

我试图测试某些搜索查询会产生一定数量的搜索建议。

首先,我在搜索框中设置了值:

searchBox.attr('value', 'new h');

然后,(这是我不知道该怎么做)它应该启动自动完成插件......然后,使用QUnit,证明页面上显示了一些建议。

ok(searchBox.find('.autocomplete-suggestion').length > 1,
                'Search suggestions returned for two character search' );

如果在设置值之后实际进行搜索,则上述代码行将起作用 - 事实并非如此。我尝试(失败)各种方法来开始搜索,包括:

searchbox.focus()

或者...

var e = jQuery.Event("keypress");
e.keyCode = e.which = 39;
searchBox.trigger(e);

或者...

searchBox.autocomplete().__proto__.getSuggestions('new h')

有没有办法做到这一点,或者我开始接近这一切都错了?

1 个答案:

答案 0 :(得分:1)

首先,最好设置输入值而不是属性:

searchBox.val('new h');

然后调用onValueChange,以触发数据查找:

searchBox.autocomplete().onValueChange();

然后等待建议,如果它是AJAX,并选择第一个建议项目:

searchBox.autocomplete().select(0);

检查在自动完成测试中如何完成: https://github.com/devbridge/jQuery-Autocomplete/blob/master/spec/autocompleteBehavior.js