Write spec
Add marker class
Compile
Generated test
Implement steps
Run & debug

Compile-time safety
Gherkin specs are translated to Java during the build, so javac checks the binding. Missing steps, wrong parameter types, invalid enum values, broken data table columns — caught before any test runs.

Plain JUnit 5
No Cucumber runner, no step discovery, no parallel toolchain. Generated scenarios are ordinary @Test methods that your IDE, build, and CI run, debug, and report on like any other JUnit test.

Feature-scoped steps
No global step registry, no runtime lookup, no ambiguous matches. Each feature gets its own generated test class, so steps belong to the feature that uses them — shared deliberately through Java inheritance when that actually helps.
Learn more →
Simple state management
No ScenarioContext, no string-keyed maps, no DI container for moving values between steps. State lives in ordinary fields on the test class, reset for each scenario by JUnit's default lifecycle.
Learn more →
Type-safe data tables
No string-keyed row maps, no manual cell parsing, no late surprises from renamed columns. Each table row becomes a typed parameter object — column drift, type mismatches, and invalid enum values surface at compile time.
Learn more →
TDD-friendly
Red-green-refactor works at every level of detail. A rule with no scenarios fails. A scenario with no steps fails. A scenario with steps fails until they're implemented. The TDD loop pulls you top-down to the next missing piece.
Learn more →
