Угловой, что можно проверить в интеграционном тесте, а что в модульном тесте - PullRequest
0 голосов
/ 02 июля 2019

При генерации компонента с помощью Angular CLI создается файл .spec.Нужно ли включать интеграцию и индивидуальные тесты?Как я могу определить, является ли тест индивидуальным или нет.

Например, я тестирую метод, который выдает значение через Output, подписывается на EventEmmiter и проверяет значение во время подписки, это модульный тест?

Второй пример.Я тестирую метод отображения всплывающей подсказки, который является компонентом начальной загрузки, так что это интеграционный тест, потому что вам нужно взаимодействие с другим компонентом?

Третий пример, я тестирую метод, который изменяет переменные вкомпонент и, наконец, перенаправляет на router.navigate, проверьте, перенаправлен ли маршрутизатор на указанный адрес - это интеграционный тест?

Я не могу найти ни одного ответа в документации.

Ответы [ 2 ]

1 голос
/ 03 июля 2019

При генерации компонента с помощью Angular CLI создается файл .spec. Должен Интеграция и индивидуальные тесты там будут включены?

Обратите внимание, что файл спецификации на самом деле необязательно . Но в любом случае вы обычно не хотите, чтобы ваши интеграционные тесты совмещались с юнит-тестами, независимо от того, как вы определяете швы в своем приложении. Это потому, что они обычно работают по разным причинам, в разное время, в разных средах. При этом единственное различие между ними может заключаться в том, чтобы вводить фиктивные стихи с использованием конкретной реализации.

Как я могу сказать, если тест индивидуален или нет.

Этот и другие ваши вопросы зависят от того, где вы попадаете в спектр пуристов-тестировщиков, и от того, как вы соотносите это с реальностью разработки. Например, Рой Ошерове определяет «юнит» как:

[a] «единица работы» или «сценарий использования» внутри системы.

Это подразумевает некоторую степень интеграции для любого разумно спроектированного, нетривиального приложения. Хотя одно можно сказать наверняка: если ваш тест основан на подключении к базе данных, доступности сети, API / службе, файловой системе или любой другой нестабильной зависимости, то это определенно интеграционный тест.

1 голос
/ 02 июля 2019

Стандартная практика - помещать ваши отдельные модульные тесты в файлы спецификаций жасмина рядом с вашими компонентами, директивами, сервисами.По умолчанию клиент создает их, используя jasmine, и они будут запускаться с помощью программы проверки кармы.

Для интеграционных тестов создайте их в папке e2e.Они снова будут использовать жасмин по умолчанию, а также тестер Protractor.Для интеграционных тестов рекомендуется абстрагировать большую часть взаимодействия страниц с объектами страницы, чтобы ваши тесты читались и находились на высоком уровне абстракции.

Уточнение

Интеграционный тест будет тестироватьинтеграция вашего Angular-приложения с другими слоями, такими как Rest или GraphQL.Если вы хотите проверить интеграцию компонентов в угловом приложении, это будет «глубокая единица», если она не требует каких-либо приспособлений вне приложения внешнего интерфейса.Если вам нужен этот глубокий модульный тест, поместите его в спецификации и запустите вместе с вашими модульными тестами.

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