Pull to refresh

Как «честно» симулировать события

Reading time 1 min
Views 719
Здравствуй уважаемое хабрасообщество.
Не так давно я начал заморачиваться не только тестированием кода на ruby, но и js, которого становиться слишком много в проектах. Со
временем добрался и до IU на js, а для его тестирования понадобилось симулировать всяко-разные события. Поискав, нашёл в одной из библиотек на jquery решение. В расширениях для тестирования была искомая библиотечка для симуляции событий. Но вот незадача, мы используем prototype (я закоренелый рубист и оно мне нравиться), а не jquery.

Немного поразмыслив я решил подправить сие, для использования, как plugin к prototype. Что из этого получилось? Что ж, мне очень помогло в тестах. Если Вы тоже сторонник тестируемого кода — Вам тоже будет полезно.

В использовании выглядит это примерно вот так:

$('foo').simulate('keypress', Event.KEY_RETURN);

$('foo').simulate("drag", {
dx: 10,
dy: 0,
onComplete: function(element){
alert('drag simulation $(' + element.id + ')');
}
});


Я намеренно расширял Element, а не Event — мне так кажется логичнее, хотя это можно и обсудить. Сжатая версия весит 3K, с документацией 7K. Git

Для почитателей jquery — выше ссылка.
Tags:
Hubs:
+2
Comments 10
Comments Comments 10

Articles