В настоящее время я использую jasmine для тестирования моего кода angularjs, и у меня есть директива, подобная автозаполнению, которая должна начинать запрашивать данные с сервера, когда пользователь вводит некоторые символы во входные данные.
Теперь вот мой тестовый код:
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() не установлен. Итак, каковы мои варианты здесь?