I’ve spent a lot of time in Cucumber lately. Mostly because I’ve been trying to integrate it into my daily workflow and also because I’ve given two presentations on it this month. I have come to a conclusion about it, and that conclusion is that I’m not a 100% convert.
Cucumber has lots of good things going for it. I really like the DSL. Given/When/Then is easy to share with coders and non-coders alike. The required nomenclature for a feature is nice when you are looking for the context of a particular feature.
Something is just not clicking for me. I can’t put my figure on it, but something is telling me not to like Cucumber.
Most of the development I’m doing these days is Ruby on Rails based. Rails comes with a so-called “integration” mechanism which is analogous to Cucumber in many respects. Both have pretty good webrat integration. Both allow you to use sweet DSLs to make everything look nice. But Rails integration tests have one benefit — they are built in. That means a lot to me at least.
To be fair, Cucumber has lots of things going for it. Tagging is looking pretty awesome, and it doesn’t appear that the guys working on it are going to slow down any time soon.
So, what does this mean for me? I’ll most likely keep a close eye on Cucumber because it works for more than just Rails at the moment.
What Cucumber really needs is a way to easily build stories. Right now, it is chore to keep track of exactly how steps are defined versus how they are actually used. It would also be nice to have a tool that showed a graphical representation of your stories, and allowed easy access to arbitrary scenarios. Maybe someone should work on that?