Den 25. mars. 2009 kl. 18.18 skrev Ben Mabey <[email protected]>:
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
I skimmed it, and it looks like a great tutorial. A comparison would
be very interesting.
Aslak
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
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users