我目前使用jasmine来测试我的angularjs代码,并且我有一些类似autocomplete的指令,当用户在输入中输入一些字符时,它应该开始从服务器请求数据。
现在,这是我的测试代码:
var element = linkingFn(scope);
var $input = $("input", element);
expect($input.length).toBe(1);
var keyVal = 111; // 'o'
$input.trigger({
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
});
keyVal = 110; // 'n'
$input.trigger({
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
});
keyVal = 101; // 'e'
$input.trigger({
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
});
// THIS DOES NOT WORK
expect($input.val()).toBe("one");
$ input.val()始终为空。我的理解是,因为它没有在浏览器中运行,所以没有事件被触发(显然),因此没有设置val()。那么我的选择是什么?