Ответ
Unit-тесты применяются для проверки отдельных модулей кода (методов, классов) в изоляции. Основные сценарии:
- Проверка бизнес-логики – тестирование алгоритмов, условий, циклов и преобразований данных.
- Рефакторинг – убедиться, что изменения не сломали существующую функциональность (регрессия).
- Раннее обнаружение багов – чем раньше найден баг, тем дешевле его исправить.
- Живая документация – тесты показывают, как должен работать код и какие крайние случаи обрабатываются.
- Дизайн кода – написание тестов до кода (TDD) помогает продумать интерфейсы и ответственности.
Пример (NUnit):
[Test]
public void Add_TwoPositiveNumbers_ReturnsCorrectSum()
{
// Arrange
var calculator = new Calculator();
// Act
int result = calculator.Add(2, 3);
// Assert
Assert.AreEqual(5, result);
}
Когда НЕ стоит использовать unit-тесты:
- Тестирование взаимодействия с внешними сервисами (базы данных, API) – это сфера интеграционных тестов.
- Проверка UI-логики или сложных пользовательских сценариев.
- Тривиальный код без логики (простые геттеры/сеттеры, автосвойства).