Ответ
Один тест-кейс должен проверять один конкретный ожидаемый результат (Assertion). Это фундаментальный принцип модульного и атомарного тестирования.
Почему это важно:
- Локализация дефектов: Если тест падает, сразу понятно, какая именно функциональность сломана.
- Читаемость: Название теста (
testLogin_WithValidCredentials_ReturnsTrue) четко описывает его цель. - Поддержка: Легко обновлять и рефакторить небольшие, сфокусированные тесты.
Правильный пример (Python/pytest):
def test_login_with_valid_credentials_returns_true():
# Arrange
auth_service = AuthService()
# Act
result = auth_service.login(username="valid_user", password="correct_pass")
# Assert - ОДНА проверка
assert result is True
Неправильный пример (проверка нескольких несвязанных вещей):
def test_login():
result = login(...)
assert result is True # Проверка успешного входа
assert current_user.name == "valid_user" # НЕОТНОСЯЩАЯСЯ проверка - это должен быть отдельный тест!
assert session.is_active() # Еще одна несвязанная проверка
Если нужно проверить несколько аспектов одного сценария, разбейте его на несколько независимых тест-кейсов.