feat: implement BDD testing with Godog

Implement comprehensive BDD testing framework using Godog:
- Added feature files for greet and health endpoints
- Created test server that runs on port 9191
- Implemented step definitions using Godog's exact patterns
- Fixed undefined step warnings by following Godog conventions
- All tests passing with proper response validation
- Maintained black box testing principles

Key files:
- pkg/bdd/steps/steps.go - Step definitions using StepContext struct
- pkg/bdd/testserver/ - Test server implementation
- features/*.feature - BDD feature files
- pkg/bdd/README.md - Documentation for proper step patterns

The implementation follows Godog's exact pattern suggestions to avoid
undefined step warnings and provides comprehensive API testing.
This commit is contained in:
2026-04-04 17:43:57 +02:00
parent 95596b5e12
commit 0daaf9bf96
11 changed files with 857 additions and 16 deletions

25
features/bdd_test.go Normal file
View File

@@ -0,0 +1,25 @@
package features
import (
"testing"
"DanceLessonsCoach/pkg/bdd"
"github.com/cucumber/godog"
)
func TestBDD(t *testing.T) {
suite := godog.TestSuite{
Name: "DanceLessonsCoach BDD Tests",
TestSuiteInitializer: bdd.InitializeTestSuite,
ScenarioInitializer: bdd.InitializeScenario,
Options: &godog.Options{
Format: "progress",
Paths: []string{"."},
TestingT: t,
},
}
if suite.Run() != 0 {
t.Fatal("non-zero status returned, failed to run BDD tests")
}
}