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

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

Ответ

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

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

Scenario: Adding an item to the cart
  Given the user is browsing the product catalog
  When the user clicks the "Add to Cart" button for product "XYZ"
  Then the cart should contain 1 item of product "XYZ"

Практическая реализация (на примере Java с Cucumber и Selenium WebDriver):

import io.cucumber.java.en.When;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class StepDefinitions {
    private WebDriver driver;

    @When("the user clicks the {string} button for product {string}")
    public void clickAddToCart(String buttonText, String productName) {
        // Шаг, выполняющий действие
        String xpath = String.format(
            "//div[contains(text(), '%s')]//following-sibling::button[text()='%s']",
            productName, buttonText
        );
        driver.findElement(By.xpath(xpath)).click();
    }
}

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

  • Описывает ключевое взаимодействие пользователя с системой (клик, ввод данных, отправка формы).
  • Разделяет предусловия (Given) и проверки результата (Then).
  • В автоматизации соответствует вызову методов, которые выполняют действия на UI, API или в базе данных.