[rspec-users] [Cucumber] ANN: Cucumber with pure Java

Ben Mabey ben at benmabey.com
Wed Mar 25 13:18:31 EDT 2009


On Mar 25, 2009, at 9:08 AM, aslak hellesoy wrote:

> Big news for all Java programmers out there.
> Now you can use Cucumber with pure Java!
>
> That's right, you don't have to write a single line of Ruby! (1)
> All of your step definitions can be written as annotated methods in  
> POJOs (Plain Old Java Objects).
>
> To get a taste of what this looks like, check out the simple example  
> in the cucumber_java project on GitHub:
>
> * README for example: http://github.com/aslakhellesoy/cucumber_java/tree/271160300da5bc9275dd67624f711c5ea6913187/examples/simple
> * Some sample step defs: http://github.com/aslakhellesoy/cucumber_java/blob/271160300da5bc9275dd67624f711c5ea6913187/examples/simple/src/main/java/simple/StuffSteps.java
> * The main page: http://github.com/aslakhellesoy/cucumber_java/tree/master
>
> By this I hope Cucumber will reach a bigger crowd. Much bigger crowd  
> actually :-) - this will work for Scala, Clojure, Jython and all the  
> other cool JVM languages too.
> (I'll be doing something similar for .NET, which will bring Cucumber  
> goodness to C#, F# and whatever languages run on .NET. But IronRuby  
> must catch up on speed first).
>
> I had the pleasure of going back to visit PicoContainer - a  
> pioneering lightweight dependency injection container I developed  
> with Paul Hammant back in 2003. It's still lightweight and a joy to  
> use (relatively speaking - Java in itself isn't joyful). Cucumber- 
> java uses PicoContainer to instantiate the POJOs that define the  
> annotated step definition methods, so if you're so inclined, these  
> classes can depend on each other via constructor DI, and  
> PicoContainer just figures out how to instantiate the objects).
>
> So if you're working on a Java project, have been looking at  
> Cucumber but stayed away because of all the weird Ruby, this is your  
> chance. Here is a cuke for Duke!
>
> (::) Aslak (::)
>
> (1) You still need a tiny bit of Ruby to register step definitions: http://github.com/aslakhellesoy/cucumber_java/blob/271160300da5bc9275dd67624f711c5ea6913187/examples/simple/features/support/env.rb
> (This will hopefully go away in the future, with some better Ant and  
> Maven support).


Very cool stuff.  It would be an interesting and informative exercise  
to take a JBehave tutorial and use Cucumber to drive out the same  
feature and then have a side-by-side comparison of the required step  
definitions.  I found this JBehave tutorial which would make a good  
candidate for such a comparison:
http://www.ryangreenhall.com/articles/bdd-by-example.html

If someone doesn't get around to this in the next couple of weeks I  
may take a stab at it and make a blog post of it.

-Ben

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20090325/212802a7/attachment-0001.html>


More information about the rspec-users mailing list