Hi Ben,

without wanting to go into a detailed comparison (would need to catch up on what Cukes folks have been doing of late), I would say that JBehave is more suited for Java-centric development that Cucumber, which is written in Ruby. While both languages can invoke code written in the other, there are good reasons to prefer an all-Java solution.

Among them:

- seamless integration into any Java IDE - particularly useful for debugging - ability to run scenarios without having access to a dev env (ie CLI, SCM etc ...) via the Web Runner. - may be more difficult to introduce a new language in the tech stack (albeit only for integration testing purposes) in a corporate environment.

Cucumber offered up to now better CLI support, in particular via it's nice terminal colour coding, but I think the gap is narrowed by the HTML reporting in JBehave.

In the end, which BDD framework you end up using is a decision that depends many factors, not least the tech know-how within your team.

Recommendation is to choose the tools that best fits the requirements you have.

Cheers

Ben Sullivan wrote:
Great - thanks Mauro.

Could I ask in your opinion, feature wise, how do you think JBehave stacks up against Cucumber? I am trying to figure out which way to go at the moment. They are pretty similar from what I've seen so far.

Beyond the feature debate, I am leaning towards JBehave at the moment. I come from a Java/Groovy background. I am a strong advocate of tracking technical debt (be it test or prod code) in order to make informed decisions around the highest value refactorings to target. I'm not (yet) convinced the code analysis tools (e.g. CheckStyle, Clover, FindBugs, Sonar) or Jetbrains IDE refactoring support for dynamically typed languages are as good as what is currently available for Java. I'm sure this will change....

Interested to know your thoughts...

Thanks

Ben



On 01/01/2010, at 11:49 PM, Mauro Talevi wrote:

Hi Ben,

JBehave already supports the specification of a story/feature narrative as you describe below. I've updated an example story to show it:

https://svn.codehaus.org/jbehave/trunk/core/examples/trader/src/main/java/org/jbehave/examples/trader/scenarios/trader_sells_all_stocks.scenario

The current impl captures everything before the first Scenario as unstructured text (hence the name Blurb in the domain module). Hence not an issue in a plain text report (newlines are maintained) but becomes less readable in, say, HTML.

What perhaps would be interesting is to add an optional Narrative element with keywords, so as to be able to distinguish between the various elements of the narrative ("In order to", "As a", "I want to").

I've created an issue to track this:

http://jira.codehaus.org/browse/JBEHAVE-230

Cheers

Ben Sullivan wrote:
Hi
In Cucumber you can do this:
Feature: Some terse yet descriptive text of what is desired
  In order to realize a named business value
  As an explicit system actor
  I want to gain some beneficial outcome which furthers the goal

  Scenario: Some determinable business situation
    Given some precondition
      And some other precondition
    When some action by the actor
      And some other action
      And yet another action
    Then some testable outcome is achieved
      And something else we can check happens too

  Scenario: A different situation
      ...
I noticed the JBehave EBNF caters for stories simply as a one or more scenarios. Are there any plans to allow more details to be fleshed out around the Story in JBehave like you can do in Cucumber?
Even if it were just:
Story := "Story:"? Description? Narrative? Scenario+ ;
Narrative := (Word Space?)* ;
We'd have a placeholder to give some story/feature context to our acceptance scenarios which I think my customers would really like.
Cheers
Ben
PS - nice work on the reporting stuff in 2.4 release!
---------------------------------------------------------------------
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




---------------------------------------------------------------------
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


Reply via email to