Основной материал, которым я руководствовался: http://habrahabr.ru/post/233705/
Для автоматического тестирования могут использоваться следующие компоненты, список которых приведен ниже.
На текущий момент выяснил следующие виды тестирования:
Unit тесты могут запускаться прямо из браузера - при этом сперва формируется html-файл, в который подключаются js-библиотеки фреймворков тестирования и исходный код тестируемых компонентов разрабатываемого приложения.
Другой способ запуска unit тестов - специальные программы. Например - Karma.
Второй вариант мне видится более удобным, как минимум потому что есть возможность автоматизировать запуск теста, запускать автоматически после изменения исходного кода, автоматического запуска для разных браузеров и т.д.
Для удобства запуска E2E тестов и создания скриптов может использоваться Protractor.
После установки соответствующих модулей для node.js для запуска selenium сервера используется команда webdriver-manager start.
Затем выполняется настройка конфигурационного файла protractor, где помимо прочего указываются тестовые скрипты, после чего запускается собственно protractor.
Дает возможность подключения библиотек, в том числе и для тестирования.
Также дает удобную возможность отладки тестов.
Ниже список распространенных инструментов, используемых для тестирования:
Для автоматического тестирования могут использоваться следующие компоненты, список которых приведен ниже.
На текущий момент выяснил следующие виды тестирования:
- Unit -тестирование, при котором пишутся тесты на каждый модуль или компоненту, написанную на JavaScript. Как правило в этом случае пишется куча моков (mocks) чтобы заткнуть различные асинхронные вызовы, а также сервисы и фабрики angular.
- End to end или E2E-тестирование. При таком тестировании полностью эмулируется работа пользователя в приложении.
Unit тестирование
Unit-тестирование для Javascript доступно примерно в таком же ключе, что оно работает для Java.
Ниже простейший код unit-теста, который характерен практически для любого фреймворка тестирования Javascript:
Unit тесты могут запускаться прямо из браузера - при этом сперва формируется html-файл, в который подключаются js-библиотеки фреймворков тестирования и исходный код тестируемых компонентов разрабатываемого приложения.
Другой способ запуска unit тестов - специальные программы. Например - Karma.
Второй вариант мне видится более удобным, как минимум потому что есть возможность автоматизировать запуск теста, запускать автоматически после изменения исходного кода, автоматического запуска для разных браузеров и т.д.
E2E -тестирование
Организуется как правило с помощью сервера Selenium.Для удобства запуска E2E тестов и создания скриптов может использоваться Protractor.
После установки соответствующих модулей для node.js для запуска selenium сервера используется команда webdriver-manager start.
Затем выполняется настройка конфигурационного файла protractor, где помимо прочего указываются тестовые скрипты, после чего запускается собственно protractor.
Webstorm
Весьма удобный инструмент для веб-разрабтки от JetBrains.Дает возможность подключения библиотек, в том числе и для тестирования.
Также дает удобную возможность отладки тестов.
Ниже список распространенных инструментов, используемых для тестирования:
- node.js
- Karma: Запускатор тестов от команды AngularJS.
- Jasmine: Фреймворк тестирования.
- Mocha: Фреймворк для тестирования.
- Chai: Assertion библиотека которая интегрируется в Mocha, и дает доступ к подходу BDD и расширяет возможности Mocha
- Chai-as-promised: Плагин для Chai, реально полезный при работе с функциями возвращающими promise.
- AngularMocks: Дает поддержку для инъекции и мока Angular сервисов в модульном тестировании.
- Protractor: Инструмент функционального тестирования для AngularJS, который запускает ваше приложение в браузере и взаимодействует с ним через Selenium.
- Sinon: Стаб(Stub) и Мок(Mock) библиотека. Используйте ее для создания заглушек зависимостей в ваших директивах и контроллерах, и проверяйте что был вызов функций с корректными аргументами.
- Browserify: Позволяет легко подключать модули между файлами в проекте
- Partialify: Позволяет подключать HTML шаблоны прямо в AngularJS директивы.
- Lodash: Библиотека, расширяющая стандартный функционал JavaScript.