У меня два вопроса:
1.) Как лучше всего протестировать прослушиватель событий?
2.) Правильно ли я понял isHostMethod?
Я пытаюсь провести модульное тестирование абстракции прослушивателя событий, но единственный способ проверить это - это событие окна load.
У меня есть пример кода здесь: https://gist.github.com/1502326
Кроме того, я использую isHostMethod Дэвида Марка (@cinsoft) для обнаружения поддержки соответствующего хост-объекта, но мне было интересно, правильно ли я понял концепции или нет? Например, правильно ли я считаю, что хост-объект / метод должен быть доступен при следующих условиях (хотя я понимаю, что эти «условия» ненадежны):
- если typeof возвращает 'function' (для большинства браузеров)
- если typeof возвращает значение unknown (для IE <9, где его реализация использовала объекты ActiveX для собственных функций) </li>
- если typeof возвращает 'object' и значение не равно 'null' (поскольку спецификации ES3 позволили null возвращать 'object', что является неправильным поведением)
Если какое-либо из этих условий выполняется, то (опять же, ненадежно) должно означать, что указанный метод хоста доступен для использования.
Но даже при этом объект / метод хоста может быть реализован иначе, чем то, что предписывает спецификация, и поэтому было бы точнее выполнить полное «обнаружение объектов», когда я создаю объект и вижу, инициируется ли событие ( или какой-нибудь подобный тест)?
Спасибо за любой совет, касающийся обоих этих запросов.