(tried posting previously, hoping this isn't duplicate)Hello,Have been working with Cucumber JVM and decided to float this proposal for a behavior change to core Cucumber design.In Cucumber JVM, have forked the main project to introduce the ability to Annotate Glue StepDef classes to be scoped to Feature files. That fork is here: https://github.com/carlparziale/cucumber-jvm. The advantage of this optional annotation is to allow Duplicate StepDef implementations across Glue classes. If the optional annotation is left off the class, the behavior is as it is today, that is the Step definitions in that Glue class are 'global' and reusable.The intended convention would be, scope a Glue Class to a feature file so that as the Feature acceptance tests grow with the system, we avoid collisions in the language. And if you want to have reusable steps, that can still be accomplished by having classes that don't use the Annotation. For smaller projects, it may never be used.was hoping to generate some interest in this design point and instigate debate and possibly acceptance of the idea across Cucumber implementations.Why do this? Allows the language in the feature files to be less subject to implementation collisions, allows the flexibility to still create reusable steps.Hope this is well received. Do you have thoughts on this idea positive or negative?Carl
(tried posting previously, hoping this isn't duplicate)Hello,Have been working with Cucumber JVM and decided to float this proposal for a behavior change to core Cucumber design.In Cucumber JVM, have forked the main project to introduce the ability to Annotate Glue StepDef classes to be scoped to Feature files. That fork is here: https://github.com/carlparziale/cucumber-jvm. The advantage of this optional annotation is to allow Duplicate StepDef implementations across Glue classes. If the optional annotation is left off the class, the behavior is as it is today, that is the Step definitions in that Glue class are 'global' and reusable.The intended convention would be, scope a Glue Class to a feature file so that as the Feature acceptance tests grow with the system, we avoid collisions in the language. And if you want to have reusable steps, that can still be accomplished by having classes that don't use the Annotation. For smaller projects, it may never be used.was hoping to generate some interest in this design point and instigate debate and possibly acceptance of the idea across Cucumber implementations.Why do this? Allows the language in the feature files to be less subject to implementation collisions, allows the flexibility to still create reusable steps.Hope this is well received. Do you have thoughts on this idea positive or negative?Carl
--
-- Rules --
1) Please prefix the subject with [Ruby], [JVM] or [JS].
2) Please use interleaved answers http://en.wikipedia.org/wiki/Posting_style#Interleaved_style
3) If you have a question, don't reply to an existing message. Start a new topic instead.
You received this message because you are subscribed to the Google Groups Cukes group. To post to this group, send email to cu...@googlegroups.com. To unsubscribe from this group, send email to cukes+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/cukes?hl=en
The primary goal would be to be adaptable to natural language tendencies for product owners anD business folks that don't know the implementation choices. While also preserving the BDD language rigor.
Example
Given I have a product owner writing acceptance tests
When they write a story with duplicate lines
Then Cucumber will warn of the duplicate
Given I have a product owner writing acceptance tests
When they write a story with duplicate lines
And the developer scopes the feature
Then Cucumber will not warn of the duplicate And will execute as if separate scenario
So the Given clause would be reused and same implementation, but the When would be a duplicate, but in reality it's a separate meaning qualified with the And.
Granted, the wording could be rearranged to make this just fine, but I'd rather have my Acceptance writing Product owners use consistent language. The real goal, as I mentioned is to preserve the linguistic consistency.
Carl,
On 10/12/12 8:42 AM, carl parziale wrote:
> Miguel,
>
> The primary goal would be to be adaptable to natural language tendencies for product owners anD business folks that don't know the implementation choices. While also preserving the BDD language rigor.
>
> Example
> Given I have a product owner writing acceptance tests
> Do you, in fact, have a product owner writing acceptance tests? Or is
> this an anticipated condition?
> When they write a story with duplicate lines
> Then Cucumber will warn of the duplicate
>
> Given I have a product owner writing acceptance tests
> When they write a story with duplicate lines
> And the developer scopes the feature
> Then Cucumber will not warn of the duplicate And will execute as if separate scenario
>
> So the Given clause would be reused and same implementation, but the
> When would be a duplicate, but in reality it's a separate meaning
> qualified with the And.
>
> Granted, the wording could be rearranged to make this just fine, but
> I'd rather have my Acceptance writing Product owners use consistent
> language. The real goal, as I mentioned is to preserve the
> linguistic consistency.
- George
--
----------------------------------------------------------------------
* George Dinwiddie * http://blog.gdinwiddie.com
Software Development http://www.idiacomputing.com
Consultant and Coach http://www.agilemaryland.org
----------------------------------------------------------------------
--
-- Rules --
1) Please prefix the subject with [Ruby], [JVM] or [JS].
2) Please use interleaved answers http://en.wikipedia.org/wiki/Posting_style#Interleaved_style
3) If you have a question, don't reply to an existing message. Start a new topic instead.
You received this message because you are subscribed to the Google Groups Cukes group. To post to this group, send email to cu...@googlegroups.com. To unsubscribe from this group, send email to cukes+un...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/cukes?hl=en
(tried posting previously, hoping this isn't duplicate)Hello,Have been working with Cucumber JVM and decided to float this proposal for a behavior change to core Cucumber design.In Cucumber JVM, have forked the main project to introduce the ability to Annotate Glue StepDef classes to be scoped to Feature files. That fork is here: https://github.com/carlparziale/cucumber-jvm. The advantage of this optional annotation is to allow Duplicate StepDef implementations across Glue classes. If the optional annotation is left off the class, the behavior is as it is today, that is the Step definitions in that Glue class are 'global' and reusable.The intended convention would be, scope a Glue Class to a feature file so that as the Feature acceptance tests grow with the system, we avoid collisions in the language. And if you want to have reusable steps, that can still be accomplished by having classes that don't use the Annotation. For smaller projects, it may never be used.was hoping to generate some interest in this design point and instigate debate and possibly acceptance of the idea across Cucumber implementations.Why do this? Allows the language in the feature files to be less subject to implementation collisions, allows the flexibility to still create reusable steps.Hope this is well received. Do you have thoughts on this idea positive or negative?Carl