Ответ
Предусловие — это начальное состояние системы или набор условий, которые должны быть выполнены до запуска теста, чтобы обеспечить его корректное выполнение и валидность результатов.
Зачем это нужно?
- Гарантирует, что система находится в ожидаемом, стабильном состоянии.
- Изолирует тест от внешних факторов, которые могут исказить результат.
- Повышает предсказуемость и воспроизводимость тестов.
Примеры:
- Для теста авторизации: наличие активного пользователя с известными учетными данными в базе данных.
- Для теста оплаты: наличие товара на складе и достаточный баланс у тестового аккаунта.
Практическая реализация (на примере pytest):
import pytest
# Фикстура как предусловие — создает пользователя перед тестом
@pytest.fixture
def registered_user():
user = create_user(username="test_user", password="secret123")
yield user
delete_user(user.id) # Постусловие — очистка после теста
# Тест использует предусловие
def test_successful_login(registered_user):
response = login(username="test_user", password="secret123")
assert response.status_code == 200
assert "auth_token" in response.json()
Ключевой момент: Если предусловие не выполнено, тест либо не должен запускаться, либо его падение будет четко указывать на проблему с окружением, а не с тестируемой функциональностью.