Тестування взаємодії користувачів із JavaScript

Я не можу отримати Lettuce/Splinter або JsTestDriver для запуску тестів взаємодії користувача з об'єктами DOM, створеними магістральною системою. Наприклад, у привітному підручнику , я хочу, щоб імітувати клік користувача кнопка з написом "Додати елемент списку", а потім перевірити, чи з'явився елемент тексту "hello world1"

  • .

    JsTestDriver: I can get a reference to the button element and call click() on it, but then document.getElementsByTagName("li") fail (or return null?).

    Відмінна книга говорить, що тестування обробки подій не є належним завданням для тестування одиниць. Таким чином, я спробував мої BDD (?) Інструменти для Django:

    Lettuce/Splinter/Django: The Splinter Browswer object can't see the text in the button, never mind get a reference to it or click it. (It does handle these operations for elements created via HTML.) Neither world.browser.is_text_present() nor find_by_id() work; passing a wait time to the former didn't help.

    Я б дійсно віддав перевагу, щоб не йти прямо до Селену, і думав, що ці інструменти зробили це непотрібним. Так що тепер?

  • 1
    Ви все ще шукаєте відповідь? Я не хочу відродити зомбі.
    додано Автор BenjaminRH, джерело

    1 Відповіді

    Під час стрілянини подій DOM технічно не може бути "одиничним тестуванням", це не означає, що ви не можете використовувати структуру тестування одиниць вимірювання :) Це більше випадок визначення.

    У будь-якому випадку, ви можете досягти того, що хочете, наприклад JsTestDriver, але я радив би не робити це вручну за допомогою, наприклад, click() (що, ймовірно, не робить того, що ви очікуєте). Я зазвичай використовую jQuery для пожежі подій, і це можна безпечно зробити, наприклад JsTestDriver. Це має працювати, навіть якщо ви не використовуєте jQuery у своєму виробничому коді.

    1
    додано
    Thx, але я не цілковито слідую. Ви пропонуєте мені отримати посилання на цільовий елемент з jQuery, а потім натиснути кнопку() на це? Або я ще більше зацікавлений в використанні моделі події jQuery, щоб викликати подію? Мені доведеться покінчити з jQuery для останнього. І так, клацніть() не веде себе так, як я очікував би.
    додано Автор chernevik, джерело
    Ви думаєте про бібліотеку jquery.simulate.js, w/jQuery та QUnit? Тому що я дістав це, щоб працювати.
    додано Автор chernevik, джерело
    ІТ КПІ - JavaScript
    ІТ КПІ - JavaScript
    504 учасників

    співтовариство javascript розробників в Telegram