Сколько ожидаемых результатов должно быть в одном тест-кейсе?

«Сколько ожидаемых результатов должно быть в одном тест-кейсе?» — вопрос из категории Тестовая документация, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Один тест-кейс должен проверять один конкретный ожидаемый результат (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()  # Еще одна несвязанная проверка

Если нужно проверить несколько аспектов одного сценария, разбейте его на несколько независимых тест-кейсов.