[МУЗЫКА]
В предыдущей лекции и упражнении, которые последовали за лекцией,
мы рассмотрели использование модульных тестов в Angular.
Мы видели, как различные части нашего углового приложения, компоненты,
услуги, директивы, трубы все могут быть протестированы с помощью модульных тестов.
Но, конечно, модульные тесты
не раскрывают все о взаимодействии между компонентами.
Именно здесь сквозные стратегии тестирования позволяют нам
видеть все приложение, работающее как единое целое.
Итак, в этой лекции мы рассмотрим использование сквозных тестов и
, какую роль они играют в общей стратегии тестирования для наших угловых приложений.
В следующем упражнении мы кратко рассмотрим, как мы можем проводить сквозное тестирование
для нашего углового приложения, используя инструмент под названием Protractor.
Как мы уже узнали в предыдущей лекции, модульные тесты
предоставляют нам прекрасную возможность для тестирования наших устройств изолированно.
Убедившись, что наши подразделения выполняют то, что они должны выполнить,
их логика верна, и взаимодействие между компонентом и
его шаблоном хорошо налажено.
Но, конечно, модульные тесты не
завершают всю картину того, как работает типичное угловое приложение.
У вас нет отдельных подразделений, работающих в изоляции.
Вместо этого ваши компоненты взаимодействуют со службами.
Компоненты могут использовать типы.
Сервисы, в свою очередь, будут взаимодействовать с бэкендом для получения данных.
И тогда сам компонент будет отвечать за рендеринг представлений
с использованием шаблонов для компонента.
Итак, как весь этот набор единиц работает вместе?
И как мы можем гарантировать, что совместная работа этих
полностью свободна от проблем?
Так вот где сквозное тестирование и тестирование интеграции
помогает нам охватить такие сценарии.
Конечно, модульные тесты играют важную роль в общей стратегии тестирования.
Но не выполняя сквозные тесты,
мы не можем быть полностью уверены, что наше приложение работает так, как ожидалось.
Одна вещь, которую я должен подчеркнуть, заключается в том, что модульные тесты быстры и
очень легко повторить и могут быть сделаны несколько раз.
Интеграционные тесты и сквозной тест медленны, и поэтому они используются
только для подтверждения того, что ваше приложение работает должным образом.
Итак, когда мы смотрим на нашу общую стратегию тестирования,
мы можем рассматривать ее как организованную в виде пирамиды.
В нижней части пирамиды, занимающей всю базу и
, образующие основу нашей общей стратегии тестирования, находятся модульные тесты.
Как мы узнали, модульные тесты позволяют нам тестировать отдельные единицы в изоляции,
убедившись, что их логика и
, как эти единицы работают правильно.
И эти тесты можно повторять очень часто.
И действительно, следует повторять часто, чтобы убедиться, что отдельные единицы
работают так, как ожидалось.
Конечно, на втором уровне этой стратегии будут интеграционные тесты.
Как небольшая группа единиц работает вместе в
, реализуя все, что необходимо сделать этой группой единиц?
Так что, возможно, мы могли бы протестировать компонент вместе с
его услугами, чтобы увидеть, как происходит поток информации между ними.
Но в верхней части этой пирамиды заканчивается тесты, где
мы смотрим на общее приложение.
И насколько хорошо работает приложение и
соответствует его ожидаемым требованиям.
Так вот где мы видим использование сквозных тестов.
Как вы уже могли ожидать на этой диаграмме, сквозные тесты медленны.
И поэтому мы не проводим сквозные тесты очень часто, вместо этого,
модульный тест формирует основную стратегию для нашего тестирования нашего углового приложения.
Сквозные тесты вносят свой вклад в общую картину, но они проводятся не так
часто, но все же являются неотъемлемой частью нашей стратегии тестирования.
Итак, как мы проводим окончательные тесты?
Давайте кратко поговорим об инструментах, которые доступны для нас.
Среда углового тестирования для сквозных испытаний
поддерживается инструментом Protractor.
Кто говорит, что у гиков нет чувства юмора?
Транспортир, Угловой, вот вы идете.
Так что же такое «Транспортрактор»?
Protractor - это, как и следовало ожидать, программа узлов.
Таким образом, это позволяет нам проводить сквозные тесты.
Таким образом, Protractor проводит тесты против вашего приложения.
Таким образом, Protractor загружает ваше приложение в браузер и взаимодействует с
приложение так же, как реальный пользователь будет взаимодействовать с вашим приложением.
Таким образом, мы смотрим на взаимодействие с вашим приложением
, хотя программно, но выполнение таких операций, которые
типичный пользователь будет выполнять, как щелчок по ссылкам, заполнение форм.
Отправка форм, переход к различным частям заявки и так далее.
Таким образом, это где Protractor использует использование WebDriver для управления браузерами
, на которых может быть проведено тестирование.
Один из таких фреймворков приложений называется Selenium Framework,
который используется для автоматического тестирования в браузерах.
Если вы используете Chrome как часть вашей стратегии тестирования или Firefox,
, то вы можете использовать то, что называется прямым подключением.
Это доступно через Protractor для прямого подключения к этим браузерам и
проводить тестирование в этих браузерах.
Теперь сами тесты используют структуру корректировки для
, выражающей тест.
Таким образом, вы все равно увидите, что пользователь описывает int и
перед каждым, что вы видели с модульными тестами.
За исключением того, что теперь мы будем использовать поддержку транспортира для
, чтобы генерировать реальные пользовательские взаимодействия с нашим приложением
с помощью кода.
Так вот что мы узнаем в упражнении, которое следует за этой конкретной лекцией
.
Мы будем использовать Protractor и писать наши сквозные стратегии тестирования.
И, конечно же, используйте поддержку Angular CLI для
проведения сквозных тестов в упражнении, которое следует за этой лекцией.
[МУЗЫКА]