Разработка приложения на Javascript — это очень просто. В нем нет строгих проверок типов (свободная типизация), обширные библиотеки для использования, нет необходимости в настройке среды разработки, он может работать где угодно и многое другое. Но довольно скоро все может запутаться, если вы будете постоянно развивать его, добавляя логику день за днем.

Очень скоро приложение становится уродливым, и его обслуживание становится болезненной задачей. Вот отличный учебник по настройке проекта javascript на стороне клиента с использованием gulp.

Модульное тестирование Javascript

Существует несколько фреймворков для тестирования, и я предпочитаю Mocha и Chai, так как считаю их более выразительными.

Ниже приведена простая функция для создания объекта со строкой запроса заданного URL-адреса,

И простой тест для него,

Вы можете запустить этот тест с Mocha с помощью следующей команды:

$ mocha --compilers js:babel-core/register

Но javascript на стороне клиента включает в себя Dom. Вы вполне можете установить jsdom-global, чтобы решать зависимости документов в ваших функциях и тестировать их. Это нормально, но что, если мы хотим протестировать с использованием реальных браузеров и нескольких устройств?

Реальное тестирование браузера с использованием кармы

Karma — это средство запуска тестов, которое запускает тестовые случаи в реальных браузерах и на разных устройствах. Звучит потрясающе, не так ли? Его настройка также проста, что очень хорошо объяснено на их основном веб-сайте.

После установки и настройки вы можете установить необходимые вам пусковые установки браузера и обновить файл конфигурации.

Теперь запустите команду для запуска кармы, она откроет настроенные браузеры и выполнит тестовые случаи во всех.

$ ./node_modules/.bin/karma start karma.conf.js --log-level debug --single-run

Подключайте несколько устройств и автоматически выполняйте тестовые случаи при изменении кода

Крутая часть Karma заключается в том, что вы можете запустить ее и добавить к ней любое устройство, и тестовые случаи будут автоматически выполняться для этого устройства. Вы можете видеть ниже, я добавил свой Android-телефон к текущему тесту, просто открыв URL-адрес в своем мобильном браузере.

Установите autoWatch: true в файле karma.config.js, чтобы разрешить выполнение тестов при каждом изменении файлов. Кроме того, вы можете отлаживать код, добавляя строку debugger к четырем функциям и открывая Инструменты разработчика в браузере, чтобы запустить отладчик. Увлекательно, верно? Идите вперед и попробуйте сами.

Настройте шаблон в репозитории Git с некоторыми задачами Gulp, чтобы начать работу.

Эта статья изначально была размещена на моем собственном сайте.