Что такое ключевое слово Then в BDD?

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

Ответ

Then — это ключевое слово в BDD (Behavior-Driven Development), используемое в сценариях Gherkin для описания ожидаемого результата или проверки после выполнения действия (When). Оно определяет, что должно произойти в системе, и служит основой для assertions в автоматизированных тестах.

Пример сценария Gherkin:

Scenario: Successful login
  Given the user is on the login page
  When the user enters valid credentials and submits the form
  Then the user should be redirected to the dashboard
  And a welcome message should be displayed

Практическая реализация (на примере Python с Behave):

from behave import then
from selenium.webdriver.common.by import By

@then('the user should be redirected to the dashboard')
def step_impl(context):
    # Assertion для проверки ожидаемого результата
    expected_url = "https://app.example.com/dashboard"
    assert context.driver.current_url == expected_url, 
        f"Expected {expected_url}, got {context.driver.current_url}"

Ключевая роль:

  • Описывает постусловия и ожидаемое состояние системы.
  • Содержит проверки (assertions), которые определяют успешность сценария.
  • Обеспечивает ясность требований между разработчиками, тестировщиками и бизнес-аналитиками.