Поиск
Показаны результаты для тегов 'тестирование'.
Найдено 1 результат
-
Что такое UNIT-тестирование? UNIT-тестирование (модульное тестирование) — это процесс проверки отдельных частей (модулей) кода на корректность. ✔ Модуль (unit) — это минимальная тестируемая часть кода (например, функция, метод, класс). ✔ Цель: убедиться, что каждый модуль работает изолированно и правильно. ✔ Кто пишет: разработчики, QA-инженеры. Пример UNIT-теста (на TypeScript с Jest) Допустим, у нас есть функция сложения: export function sum(a: number, b: number): number { return a + b; } Пишем UNIT-тест с Jest: import { sum } from './math'; test('Сложение чисел', () => { expect(sum(2, 3)).toBe(5); expect(sum(-1, 1)).toBe(0); }); Как это работает? expect(sum(2, 3)).toBe(5); — проверяем, что sum(2,3) возвращает 5. Если результат не совпадает с ожидаемым, тест провалится. Зачем нужны UNIT-тесты? Легко находить ошибки на ранних этапах Помогают рефакторить код без страха что-то сломать Ускоряют разработку (меньше багов в продакшене) Повышают доверие к коду Важно! UNIT-тест проверяет только один модуль, но не связь с другими модулями (для этого есть интеграционные тесты). Как запускать UNIT-тесты? Установить Jest (для TypeScript): npm install --save-dev jest ts-jest @types/jest Добавить команду в package.json: "scripts": { "test": "jest" } Запустить тесты: npm test Другие инструменты для UNIT-тестирования в TS Jest — самый популярный Mocha + Chai — гибкий подход Vitest — быстрый аналог Jest AVA — минималистичный Подробный разбор UNIT-тестов Что такое UNIT-тестирование? UNIT-тестирование (модульное тестирование) — это процесс проверки отдельных частей (модулей) кода на корректность в изоляции от других частей программы. ✔ UNIT (модуль) — это небольшая независимая часть кода: Функция Метод класса Компонент (в случае фронтенда) ✔ Цель: проверить, что каждый модуль работает правильно сам по себе, без внешних зависимостей (например, базы данных, API, файловой системы). Где используются UNIT-тесты? Backend (проверка функций, API, бизнес-логики) Frontend (тестирование компонентов UI, логики) Мобильная разработка (проверка сервисов и логики приложения) GameDev (тестирование геймплейных механик) DevOps/SRE (тестирование инфраструктурных скриптов) Какие инструменты и фреймворки используют для UNIT-тестов? В зависимости от языка программирования существуют разные инструменты: Язык программирования Фреймворки/Библиотеки для UNIT-тестирования JavaScript / TypeScript Jest, Mocha, Jasmine, AVA, Vitest Python unittest, pytest, nose2 Java JUnit, TestNG, Mockito C# (.NET) NUnit, xUnit, MSTest PHP PHPUnit Go testing package, Testify Ruby RSpec, Minitest Swift (iOS) XCTest Kotlin JUnit, Kotest C++ Google Test (gtest), Catch2 Как писать UNIT-тесты? 1. UNIT-тест на TypeScript (Jest) Простая функция для тестирования: export function sum(a: number, b: number): number { return a + b; } Тест с Jest: import { sum } from './math'; test('Функция сложения работает правильно', () => { expect(sum(2, 3)).toBe(5); expect(sum(-1, 1)).toBe(0); }); Запуск тестов: npm test 2. UNIT-тест на Python (pytest) Функция: def sum(a: int, b: int) -> int: return a + b Тест с pytest: from math_operations import sum def test_sum(): assert sum(2, 3) == 5 assert sum(-1, 1) == 0 Запуск тестов: pytest 3. UNIT-тест на Java (JUnit) Класс для тестирования: public class Calculator { public int sum(int a, int b) { return a + b; } } Тест с JUnit: import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; public class CalculatorTest { @Test void testSum() { Calculator calc = new Calculator(); assertEquals(5, calc.sum(2, 3)); assertEquals(0, calc.sum(-1, 1)); } } Запуск тестов: mvn test Где применяются UNIT-тесты? Backend Проверка бизнес-логики Тестирование API-эндпоинтов Проверка обработки данных Frontend Тестирование UI-компонентов (React, Vue, Angular) Проверка функций и утилит Тестирование взаимодействия с API Мобильные приложения Проверка сервисов (Android, iOS) Тестирование ViewModel и бизнес-логики Игровая индустрия (GameDev) Проверка игровых механик Тестирование AI DevOps / SRE Тестирование инфраструктурных скриптов Проверка CI/CD процессов Плюсы и минусы UNIT-тестов Плюсы: ✔ Позволяют раньше находить ошибки ✔ Упрощают рефакторинг кода ✔ Улучшают качество кода ✔ Повышают надежность системы ✔ Облегчают автоматизацию тестирования Минусы: Требуют времени на написание Не покрывают интеграционные ошибки Трудно тестировать сложные модули с зависимостями Best Practices (Лучшие практики UNIT-тестирования) Принцип FIRST (Fast, Independent, Repeatable, Self-validating, Timely) Писать тесты до или во время написания кода (TDD) Каждый тест проверяет только ОДНУ функцию Имена тестов должны быть понятны (например, testSumReturnsCorrectResult) Mock-зависимости (например, базы данных) Генерировать отчёты о тестах Вывод UNIT-тестирование — это важный инструмент, который помогает делать код надежнее, предотвращать баги и ускорять разработку. Если хочешь попробовать написать UNIT-тесты для своего проекта — могу помочь! Есть вопросы или нужен пример для твоего проекта? Пиши!