我目前在表单上使用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')
有没有办法做到这一点,或者我开始接近这一切都错了?
答案 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