Laravel Dusk: обновленные возможности
Для end-to-end тестирования различных приложений, использующих JavaScript, можно воспользоваться отличным инструментарием Laravel Dusk. В нем предлагается широкий выбор вспомогательных методов, позволяющих комфортно проводить разные тесты. С помощью данного комплекса можно просто выбрать ссылку, заполнить поля в соответствующей форме, а затем ее переслать. Здесь предлагается правильный метод диагностирования разных интерактивных функций. С помощью Dusk можно протестировать заполнение форм, или функции Drag and Drop, либо проверить клик на ссылке или кнопке.
Удобный Symfony BrowserKit применяется в Laravel для симуляции поведения web-браузеров. Однако этот компонент невозможно задействовать, если AJAX или JavaScript используются для загрузки страниц в приложении. Чтобы решить эту задачу в Laravel 5.4, и вставлен новый эффективный функционал Dusk.
Здесь можно удобно посмотреть на страницу, если не правильно отработала задача. Все скриншоты провалившихся тестов автоматом сохраняются в Dusk.
В Dusk для проведения одного теста предусмотрена возможность открытия каскада окон. Благодаря этому, можно в одном окне выполнять нужные действия, а в другом — просматривать полученные результаты. Такой функционал существенно упростит проверку приложений, где есть сокеты.
Разработчику не надо постоянно входить в аккаунт, чтобы открыть страницу, на которой нужно авторизироваться. В системе добавлен и удобный функционал — помощники loginAs. Они дают возможность провести авторизацию, и получить сущность пользователя.
Чтобы проводить end-to-end тесты в нем применяется Php-webdriver, либо же ChromeDriver, с которым он поставляется по умолчанию. Это дает возможность не устанавливать Selenium либо JDK. Хотя Dusk спокойно поддерживает любой Selenium browser. Благодаря этому, данная система чрезвычайно проста в использовании. Разработчику нет необходимости постоянно выполнять запуск сервера и проделывать трудоемкий процесс инсталляции Selenium. Все тесты здесь проходят намного шустрее, чем на Selenium.
Можно легче проводить тестирование приложений с JavaScript, потому, что в Dusk можно обождать, пока не станет истинным нужное условие, либо откроется доступ к CSS-селектору.
Все настройки тестовой среды сохраняются в файле .env.dusk, расположенном в корневом каталоге. Для выполнения Dusk-теста не нужно напрямую применять PHPUnit. Можно просто вызвать консольную команду Artisan, она скопирует существующий .env, одновременно подменяя его во время проведения теста файлом .env.dusk. По завершению всех работ .env автоматически восстанавливается.
Для двусторонней совместимости предусмотрен пакет Laravel BroweserJit Testing, благодаря ему, в Laravel после обновления до версии 5.4 не пропадут все тесты созданные под BrowserKit.