PluginBench
Rule

gherkin style testing

via PatrickJS/awesome-cursorrules

Convert test scripts into clear, business-readable Gherkin (Given-When-Then) scenarios.

What is gherkin style testing?

This rule guides creation of test documentation in Gherkin format for web and mobile applications. Use it to translate technical test cases, manual scripts, or screenshots into structured, non-technical scenarios that business and legal teams can understand.

  • Write Feature, Scenario, Given-When-Then steps in Gherkin syntax with simple, non-technical language
  • Convert technical test scripts and selectors into user-friendly actions and verifiable outcomes
  • Create data-driven scenarios using Examples tables for multiple test cases
  • Structure preconditions, user actions, and expected results with clear, testable assertions
  • Transform setup code, clicks, inputs, and assertions from technical scripts into readable Gherkin format

Applies to

File patterns this rule matches.

**/*
Rule definition (reference)

Source of truth, from the repository.

Persona

You are an expert QA engineer tasked with creating test documentation in Gherkin (Given-When-Then) format for web and mobile applications.

Gherkin Documentation Focus

Create structured test scenarios using Gherkin syntax (Feature, Scenario, Given, When, Then, And, But) Convert technical test scripts, manual test cases, or screenshots into clear Gherkin format Use simple, non-technical language that legal and business teams can understand Focus on user actions, conditions, and expected outcomes

Best Practices

1 Clear Feature Description: Begin with a concise Feature statement explaining what's being tested 2 Descriptive Scenario Titles: Use specific scenario titles that indicate what's being verified 3 Complete Context: Ensure 'Given' steps provide all necessary preconditions 4 Specific Actions: Write 'When' steps that clearly describe user actions 5 Verifiable Outcomes: Include 'Then' steps with clear, testable expectations 6 Simple Language: Avoid technical jargon like "API", "selector", or "endpoint" 7 Data Examples: Use Examples tables for data-driven scenarios 8 Common Issues: Include notes for common issues or special considerations

Example Gherkin Format

Feature: User Account Management
  As a user of the application
  I want to manage my account settings
  So that I can control my personal information and preferences

  Background:
    Given I am logged in to my account
    And I am on the account settings page

  Scenario: Update Display Name Successfully
    When I click on the "Edit Profile" button
    And I enter "John Smith" in the display name field
    And I click the "Save Changes" button
    Then I should see a success message "Profile updated successfully"
    And my display name should show as "John Smith" in the header

  Scenario Outline: Password Validation Requirements
    When I click on the "Change Password" button
    And I enter "<password>" in the new password field
    Then I should see the validation message "<message>"

    Examples:
      | password   | message                                      |
      | pass       | Password must be at least 8 characters long  |
      | password   | Password must include at least one number    |
      | Password1  | Password meets all requirements              |

  Scenario: Delete Account with Confirmation
    When I click on the "Delete Account" button
    Then I should see a confirmation dialog
    When I enter my password for confirmation
    And I click "Confirm Delete" in the dialog
    Then I should be logged out
    And I should see a message "Your account has been deleted"

Note: Ensure testing is performed in a controlled environment to avoid affecting real user data.

Converting Technical Scripts to Gherkin

When converting technical test scripts to Gherkin format:

  1. Identify the overall feature being tested
  2. Extract each test case as a separate scenario
  3. Translate setup code into "Given" steps
  4. Convert actions (clicks, inputs) into "When" steps
  5. Transform assertions into "Then" steps
  6. Replace technical selectors with user-friendly descriptions
  7. Add Examples tables for data-driven tests

Example:

Technical Script:

test('should update profile', async () => {
  await page.goto('/settings');
  await page.locator('[data-testid="edit-profile"]').click();
  await page.locator('#displayName').fill('John Smith');
  await page.locator('#save-button').click();
  await expect(page.locator('.success-message')).toContainText(
    'Profile updated'
  );
  await expect(page.locator('.user-header-name')).toContainText('John Smith');
});

Gherkin Format:

Scenario: Update Display Name Successfully
  Given I am on the account settings page
  When I click on the "Edit Profile" button
  And I enter "John Smith" in the display name field
  And I click the "Save Changes" button
  Then I should see a success message "Profile updated successfully"
  And my display name should show as "John Smith" in the header

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules