Как выполнить модульное тестирование ExtJS или аналогичных интерфейсов на основе JavaScript? - PullRequest
8 голосов
/ 18 сентября 2010

Я использую PHPUnit для тестирования моего исходного кода PHP, но мне также нужен способ для тестирования клиентского кода.Я использую ExtJS для создания довольно сложных интерфейсов, которые вызывают сервер для данных.Мне интересно, вот как можно проверить пользовательский интерфейс?

Ответы [ 4 ]

7 голосов
/ 08 декабря 2011

Недавно появился новый инструмент под названием Siesta . Он специально предназначен для Ext JS (хотя также может тестировать любой код JS) и отлично подходит для тестирования кода Ext JS UI, поскольку в нем есть встроенная симуляция и запись событий Ext JS.

Я также лично использую Jasmine для моего модульного тестирования, как и команда Ext JS для внутреннего использования, хотя она не особенно подходит для тестирования пользовательского интерфейса (хотя она отлично подходит для тестирования кода).

4 голосов
/ 18 апреля 2012

Я только что наткнулся на Siesta , которая специально для ExtJS. Это выглядит многообещающе. Это то, что команда Ext использовала для тестирования своего API при переходе с v3 на v4.

4 голосов
/ 18 сентября 2010

Есть много разных способов.

Если вы хотите проверить его функционально (как пользователь), используйте что-то вроде Selenium или Watir .Это будет работать на вашем сайте, как пользователь и будет использовать JavaScript и код бэкенда.

Если вы хотите просто протестировать свой JavaScript, я бы использовал JSTestDriver .Это позволяет вам тестировать ваш JavaScript.Он не поддерживает асинхронные вызовы, но может выполнить тест.

0 голосов
/ 20 марта 2014

Эта страница оказалась полезной при настройке платформы тестирования для корпоративного проекта ExtJS GUI с нуля.Вот обновление аддона и темы и наш окончательный выбор, основанный на опыте пары дней.Я надеюсь, что кто-то сэкономит время, сделав выбор и избежав ошибок при первом тестировании.

Первым делом было ввернуть все в Netbeans и использовать его встроенный механизм jsTestDriver с поддержкой библиотеки Jasmine по умолчанию.Преуспел, но поскольку Jasmine в основном выполняет модульное (изолированные блоки кода) тестирование, мы могли бы извлечь обычный объект javascript, но не смогли извлечь компоненты Ext и, следовательно, его содержимое.Мы попытались импортировать библиотеку Siesta, используя тот же стандартный подход (в файле jsTestDriver.conf), увидели ее через завершение кода, но все равно не помогли с объектами ExtJS.На форумах Siesta я обнаружил, что между Siesta и jsTestDriver есть некоторые принципиальные различия в архитектуре, поэтому мы решили отказаться от экономии времени.

Поскольку Siesta является наиболее очевидным выбором для такого проекта, следующим шагом былочтобы сделать это точно в соответствии с оригинальным учебником Brynthum .Хотя было нежелательно выходить за пределы IDE и увеличивать производственные окна с потерей интеграции.

Важно, что в учебнике Brynthum также есть хитрость.После прохождения вашего первого теста в браузере Brynthum Harness вы не увидите подробностей теста справа и столкнетесь с ошибкой браузера Uncaught TypeError: Невозможно прочитать свойство parentNode из null.Причина в том, что библиотека ExtJS для Brynthum Harness Browser должна обязательно соответствовать версии библиотеки Siesta.На данный момент Siesta 2.0.5 = Ext 4.2.0.Для вашего проекта в файл конфигурации можно загрузить другую версию библиотеки ExtJS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...