---
title: Тестирование
prev: false
next: false
contributors:
  - Dinozavvvr
description: Введение в задачи по тестированию.
noCommentSection: true
sidebar:
  order: 1
---

import { LinkCard } from '@astrojs/starlight/components';

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

В этой серии упражнений по тестированию мы изучим и освоим [Testing Library](https://testing-library.com/docs/) и [Cypress Component Testing](https://docs.cypress.io/guides/component-testing/angular/overview), которые упрощают манипуляции с DOM для тестирования любого компонента Angular.

Преимущества использования <b>Testing Library</b> или <b>Cypress Component Testing</b> заключаются в том, что вы тестируете свой компонент как черный ящик. Вы будете взаимодействовать только с тем, что пользователь может делать на интерфейсе. Однако отличие от полноценных тестов заключается в том, что бэкэнд замокан, что делает тесты быстрее и более поддерживаемыми.
Цель состоит в том, чтобы мокать как можно меньше, чтобы тестировать ваш компонент на более высоком уровне, чем при модульном тестировании, что облегчит рефакторинг.
В реальном приложении интеграционные тесты - это тесты, которые вы будете писать больше всего. Изучение того, как их писать, сделает ваше приложение более надежным и поддерживаемым.

Перед вами серия из 8 задач, которые вы можете решить в любом порядке.

<LinkCard
  title="🟢 Harness"
  description="Узнайте, как тестировать с использованием компонентов Angular CDK harness"
  href="/challenges/testing/23-harness/"
/>

<LinkCard
  title="🟢 Checkbox"
  description="Узнайте, как отлаживать ваши тесты с помощью Testing Library на простом приложении с флажками"
  href="/challenges/testing/28-checkbox/"
/>

<LinkCard
  title="🟠 Router"
  description="Узнайте, как тестировать компоненты маршрутизатора"
  href="/challenges/testing/17-router/"
/>

<LinkCard
  title="🟠 Nested Components"
  description="Узнайте, как тестировать вложенные компоненты"
  href="/challenges/testing/18-nested-components/"
/>

<LinkCard
  title="🟠 Input Output"
  description="Узнайте, как тестировать вводы и выводы"
  href="/challenges/testing/19-input-output/"
/>

<LinkCard
  title="🟠 Modal"
  description="Узнайте, как тестировать модальный компонент"
  href="/challenges/testing/20-modal/"
/>

<LinkCard
  title="🟠 Harness Creation"
  description="Узнайте, как создать собственные харнесы для ваших компонентов"
  href="/challenges/testing/24-harness-creation/"
/>

<LinkCard
  title="🔴 Реальное приложение"
  description="Узнайте, как написать серию тестов для реальных приложений"
  href="/challenges/testing/29-real-life-application/"
/>
