Examples
The fastest way to learn SpecBinder is to read a small, focused example for the construct you care about. Every example below ships as a runnable Maven project in the SpecBinder repository — clone it and mvn test to see the generated code on your own machine.
Basics
The fundamentals — one Gherkin construct per example.
| Example | What it covers |
|---|---|
| Hello World | The smallest possible feature — one scenario, plain steps, no parameters |
| Step Parameters | Type inference for quoted values: String, Integer, Long, Double, Boolean, Character |
| Implementing Steps | End-to-end working example with real assertions and shared state |
| Rules | Gherkin Rule blocks → JUnit @Nested test classes |
| Background | Feature- and rule-level Background blocks → @BeforeEach |
| Scenario Outline | Parameterized scenarios → JUnit @ParameterizedTest with @CsvSource |
| Tags | Gherkin tags → JUnit @Tag for selective execution |
Common use cases
Patterns that come up beyond the basics.
| Example | What it covers |
|---|---|
| Typed Data Tables | The default LIST_OF_OBJECT_PARAMS mode — typed inner classes |
| Cucumber Data Tables | The CUCUMBER_DATA_TABLE mode for Cucumber's DataTable API |
| TDD Workflow | Red-green iteration with empty rules and scenarios tagged @new |
| Abstract Mode | The default — compile-time enforcement of step implementations |
| DocStrings | Multi-line input (JSON, plain text) → trailing String parameter |
| Convention Discovery | Bare @Gherkin2JUnit with co-located feature files |
| Glob Patterns | One marker class → many feature files via glob |
| Type Refinement | Refine generated Param classes with enums for compile-time safety |
| Config Inheritance | Share options across markers with @Gherkin2JUnitOptions on a base class |
| Cucumber Annotations | @Given / @When / @Then matching with custom method names |
Tooling
| Example | What it covers |
|---|---|
| Execution Reporter | The dev.specbinder:execution-reporter module — one JSON file per feature |
Running an example
Every example is a self-contained Maven project. After cloning the repo:
cd examples/getting-started/example-1
mvn test
The generated test class appears under target/generated-test-sources/ — open it in your IDE to see what the annotation processor produced.