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

aslak hellesoy aslak.hellesoy at gmail.com
Wed Mar 25 11:08:25 EDT 2009


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).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20090325/6bc22a11/attachment.html>


More information about the rspec-users mailing list