Для следующей формы регистрации я сконфигурировал, что первое поле ввода с id="signUpName"
сфокусировано при визуализации формы. Backbone-forms Используется для создания формы.Как проверить, сфокусировано ли поле формы ввода?
Я хочу проверить с Jasmine v.1.3.0 ли определенная форма ввода поля сосредоточены, когда я загружаю вид:
it("should focus the name field of the sign-up form", function() {
var signUpName = userController.loginView.signUpForm.$el.find("#signUpName");
userController.loginView.showSignUpForm();
expect(signUpName).toBeFocused();
// expect(signUpName.is(":focus")).toBe(true);
});
Жасмин предлагающее:
Expected '<input id="signUpName" name="signUpName" type="text">' to be focused.
Как вы можете видеть из спецификации я использую toBeFocused()
с jasmine-jquery. Я использую последнюю версию 1.5.93 расширения. Я также нашел дискуссию о реализации toBeFocused()
и заметил, что они тем временем изменили ее на alternative implementation, предложенный Райаном Гринбергом.
В качестве альтернативы я попытался шпионить по объекту фокус - если на самом деле это один?
it("should focus the name field of the sign-up form", function() {
var signUpName = userController.loginView.signUpForm.$el.find("#signUpName");
var spyEvent = spyOnEvent(signUpName, 'focus');
userController.loginView.showSignUpForm();;
expect('focus').toHaveBeenTriggeredOn(signUpName);
expect(spyEvent).toHaveBeenTriggered();
});
Жасмин подсказывает:
Expected event focus to have been triggered on [object Object]
http://stackoverflow.com/questions/967096/using-jquery-to-test-if-an-input-has-focus – skos
@ SachynKosare Я уже читал эту тему, как вы могли догадаться из строки без комментариев в моей спецификации. Тем не менее я не знаю, почему тест терпит неудачу. – JJD