Uploaded image for project: 'JBehave'
  1. JBEHAVE-702

Allow directives to support multiple step pattern variant


    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.5.4
    • Fix Version/s: 3.6
    • Component/s: Core
    • Labels:


      To get more natural German story texts, it would be very helpful if the Steps.listCandidates() method could be amended.
      This would allow for automatically generating slight variations of the texts without having to specify them all as aliases. Currently I am doing this:

      @Then("soll foo bar with $xyz")
      @Aliases(values =

      { "foo bar with $xyz", "soll foo bar: $xyz", "foo bar: $xyz" }


      The word "soll" is made optional this way. The reasoning behind this is that when using "And" it is more natural to write

      Then soll something else
      And foo bar with $xyz

      instead of

      Then soll something else
      And soll foo bar with $xyz

      It would be very nice to not have define aliases for all these variants, because it makes the code harder to maintain. Instead, I though I'd add this dynamically, the same way annotated Aliases are, but it seems this functionality would require providing a new subclass of org.jbehave.core.steps.Steps which I cannot see how to do.

      I suggest a change like this:

      1) In org.jbehave.core.steps.Steps add another call in listCandidates() after each of the addCandidatesFromAliases(...) like addCustomDerivedCandidates(...) with the same signature and a protected empty default implementation.
      2) Allow configuration to specify a custom subclass of org.jbehave.core.steps.Steps. In there custom additions to the candidates list could be made, like the one I described.




            • Assignee:
              maurotalevi Mauro Talevi
              danielschneller Daniel Schneller
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: