Hi Christian,
the issue you pose is a very good one indeed.
At the heart of BDD is the concept of creating a DSL - domain specific
language - that is shareable by all team members and stakeholders.
The aliases are not intended to replace the communication and
interaction amongst those developing the grammar. Rather they are meant
to allow the evolution of the language. The aim to not block the
refinement of the way the behaviour is expressed because of fears that
it would break the build.
Ultimately, though, as Brian was rightfully saying, 50 aliases are most
definitely a smell!
The recommended way to build a DSL is to check for existing steps.
JBehave provides step finding functionality, which you may use in
different run contexts, as usual. Brian has already pointed you toward
the core doc page:
http://jbehave.org/reference/stable/finding-steps.html
(https://github.com/jbehave/jbehave-core/blob/master/examples/trader-spring/src/main/java/org/jbehave/examples/trader/spring/TraderEmbedderWithSpringJUnit4ClassRunner.java
provides an example of how you can embed this functionality to run via
JUnit in Eclipse).
You may also find useful the web interface to this functionality, via
the Web Runner:
http://jbehave.org/reference/web/stable/using-web-runner.html
The web functionality is earmarked for some improvements - notably
auto-completion:
http://jira.codehaus.org/browse/JBEHAVE-669
The WebRunner may be particularly useful if you have a separation
between technical and non-technical team members.
The technical team can provide a story running and finding context as a
webapp, which the non-technical team can use without needing access to
the code or the build system.
Don't hesitate to let us know how you're getting on.
We'll be glad to help.
Cheers
On 16/12/2011 15:52, Christian Taylor wrote:
Hi all,
Just found and joined this group. Looks like a great resource for help
and sharing experiences:)
I joined as a result of a specific discussion we are having about
scenario steps, as we are about to take the leap into the jBehave world
and need to try and understand things a little more in-depth before we
commit entirely.
We are a small test team of 2 (sometimes 3), but many of the developers
also contribute to writing stories. We have a fairly defined divide
between authors and implementers - meaning it's so far only the dev
teams doing the implementation. That may change in the future, but it's
working well for us.
Reading through the information available, there seems to be a lot of
focus on the implementations, but reading about the alias feature, my
toes curl at the thought of a test-suite building up and ending with 50
aliases to 1 implementation.
If I am about to embark on writing some new stories and want to make
sure that my steps use a syntax which is identical to the existing
stories so as to avoid the use of aliases - how is this done?
Is it simply a search through the exisiting .story files for the step I
have just written?
Is there a tool for eclipse or otherwise that aids this?
Is it simply a fact of life that aliases are a necessary evil (in my
book at least)?
Remember I'm referring only to the authoring of the scenarios here, and
not the implementation.
Thanks
Christian
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email