Ответ
В синтаксисе Gherkin, используемом для BDD (Behavior-Driven Development), ключевое слово Given описывает начальное состояние системы или контекст перед выполнением тестового сценария. Оно отвечает на вопрос «При каких условиях?».
Назначение и правила:
Givenподготавливает систему к тесту: создает данные, настраивает окружение, выполняет авторизацию.- Оно должно быть атомарным и описывать только предпосылки, без действий (это
When) и проверок (этоThen).
Пример сценария в Gherkin:
Feature: User logout
Scenario: Successful logout from the main page
Given the user "alice" is logged into the application
When the user clicks the "Logout" button
Then the user is redirected to the login page
And a success message "You have been logged out" is displayed
Реализация шага Given в коде (на примере Python с pytest-bdd):
from pytest_bdd import given, scenarios
from models import User
scenarios("logout.feature")
@given("the user "<username>" is logged into the application", target_fixture="current_user")
def authenticated_user(username):
"""Фикстура, создающая и авторизующая пользователя."""
user = User.find_by_name(username)
user.login() # Выполнение логики входа (например, установка сессии)
return user # Возвращаемый объект будет доступен в следующих шагах
Цель Given — обеспечить воспроизводимое и четко определенное стартовое состояние для каждого теста.