Files
dance-lessons-coach/pkg/bdd/steps
..

BDD Steps Organization

This folder contains the step definitions for the BDD tests, organized by domain for better maintainability and scalability.

Structure

pkg/bdd/steps/
├── greet_steps.go        # Greet-related steps (v1 and v2 API)
├── health_steps.go       # Health check and server status steps
├── auth_steps.go         # Authentication and user management steps
├── common_steps.go       # Shared steps used across multiple domains
├── steps.go             # Main registration file that ties everything together
└── README.md            # This file

Design Principles

  1. Domain Separation: Steps are grouped by functional domain
  2. Single Responsibility: Each file focuses on a specific area of functionality
  3. Reusability: Common steps are shared via common_steps.go
  4. Scalability: Easy to add new domains as the application grows

Adding New Steps

  1. For new domains: Create a new *_steps.go file following the existing pattern
  2. For existing domains: Add to the appropriate domain file
  3. For shared functionality: Add to common_steps.go
  4. Register all steps: Update steps.go to include the new steps

Step Naming Convention

  • Use descriptive, action-oriented names
  • Follow the pattern: i[Action][Object] or the[Object][State]
  • Example: iRequestAGreetingFor, theAuthenticationShouldBeSuccessful

Testing the Steps

Run BDD tests with:

go test ./features/... -v

Future Domains

As the application grows, consider adding:

  • payment_steps.go - Payment processing steps
  • notification_steps.go - Notification and email steps
  • admin_steps.go - Admin-specific functionality steps
  • api_steps.go - General API interaction patterns