У меня есть два вопроса:Как лучше всего провести тестирование абстракции событий?
1.) Как лучше всего провести тестирование при прослушивании событий? 2.) Правильно ли я понял isHostMethod?
Я пытаюсь выполнить unit-test абстракцию прослушивателя событий, но единственный способ, с помощью которого я могу проверить его, - это событие «загрузка» окна.
Я пример кода здесь: https://gist.github.com/1502326
Кроме того, я использую Дэвид Марк (@cinsoft) isHostMethod обнаружить соответствующую поддержку объекта хоста, но было интересно, если я правильно понял, понятия или нет? Так, например, я прав, полагая, что объект хоста/метод должен быть доступен в следующих условиях (хотя я понимаю, что эти «условия» недостоверны):
- если TYPEOF возвращает «функция» (для большинства браузеры)
- если TYPEOF возвращает «неизвестная» (для IE < 9, где его реализация используемых объектов ActiveX для собственных функций)
- если TYPEOF возвращает «объект», а значение не является «нулевым» (потому что ES3 данные позволили null для возврата «объекта», который является неправильным поведением)
Если какое-либо из этих условий истинно, то (опять же, неправомерно) должно означать, что указанный метод узла доступен для использования.
Но даже объект-объект хоста может быть реализован по-разному так, как это специфицирует спецификация, и поэтому было бы более точно выполнить полное «обнаружение функции», где я создаю объект и посмотреть, вызвано ли событие (или какой-либо аналогичный тест)?
Благодарим за любой совет, касающийся обоих этих вопросов.
Код не может существовать без контекста. То, что вы называете абстракцией, - это 3 разные функции, сопоставленные с тем же именем в зависимости от среды. И, как вы знаете, эти альтернативы делают разные вещи (порядок выполнения, «это», несколько слушателей), и они будут продолжать делать это, даже если вы тщательно проверяете их существование. – galambalazs