From cucumber
Explains core Cucumber concepts, Gherkin syntax, feature file structure, scenario outlines, tags, and best practices for BDD testing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cucumber:cucumber-fundamentalsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Master the core concepts of Cucumber and Gherkin for behavior-driven development.
Master the core concepts of Cucumber and Gherkin for behavior-driven development.
Use the Given-When-Then structure for scenarios:
Feature: User Authentication
As a user
I want to log in to the application
So that I can access my account
Scenario: Successful login with valid credentials
Given I am on the login page
When I enter valid credentials
And I click the login button
Then I should be redirected to the dashboard
And I should see a welcome message
Structure feature files logically:
Feature: Shopping Cart Management
In order to purchase products
As a customer
I want to manage items in my shopping cart
Background:
Given I am logged in as a customer
And my shopping cart is empty
Scenario: Add product to cart
When I add a "Laptop" to my cart
Then my cart should contain 1 item
And the cart total should be "$999.99"
Scenario: Remove product from cart
Given I have a "Laptop" in my cart
When I remove the "Laptop" from my cart
Then my cart should be empty
And the cart total should be "$0.00"
Use data tables for parameterized tests:
Scenario Outline: Login with different user types
Given I am on the login page
When I log in as "<user_type>"
Then I should see the "<dashboard>" dashboard
And I should have "<permissions>" permissions
Examples:
| user_type | dashboard | permissions |
| admin | Admin | full_access |
| user | User | limited_access |
| guest | Public | read_only |
Organize and filter scenarios with tags:
@smoke @authentication
Scenario: User login
Given I am on the login page
When I enter valid credentials
Then I should be logged in
@wip
Scenario: Password reset
Given I am on the password reset page
# Work in progress
❌ Bad (imperative, implementation-focused):
Scenario: Update user profile
Given I navigate to "http://example.com/profile"
When I find the element with id "firstName"
And I clear the input field
And I type "John"
And I click the button with class "save-btn"
Then I should see the text "Profile updated"
✅ Good (declarative, business-focused):
Scenario: Update user profile
Given I am on my profile page
When I update my first name to "John"
Then my profile should be saved
And I should see a success message
Pass structured data to steps:
Scenario: Register new user
Given I am on the registration page
When I fill in the registration form:
| Field | Value |
| First Name | John |
| Last Name | Doe |
| Email | [email protected] |
| Password | SecurePass123! |
Then I should be registered successfully
Pass multi-line text to steps:
Scenario: Submit contact form
Given I am on the contact page
When I submit a message:
"""
Hello support team,
I have a question about my recent order #12345.
Please contact me at your earliest convenience.
Best regards,
John Doe
"""
Then I should see a confirmation message
Remember: Cucumber scenarios are specifications first, tests second. They document expected behavior in a language everyone understands.
npx claudepluginhub thebushidocollective/han --plugin cucumberOutlines Cucumber best practices including declarative scenarios, one behavior per scenario, independent tests, Background usage, and feature organization using Gherkin. Useful for BDD testing.
Guides BDD testing with Cucumber/Gherkin in Ruby/Rails: feature files, step definitions, hooks, tags, data tables, doc strings, World modules, Capybara integration.
Provides BDD patterns using Given-When-Then, Gherkin feature files, scenario outlines, and step definitions for business-readable tests and specifications.