Cucumber Tip: IRB From Inside a Step Definition

Most Ruby programmers know about Ruby's interactive console, IRB. (If you don't, stop right here, open up a command window and run irb. Type some Ruby code. See how it returns the result of each line right away.) IRB is great for poking around with unfamiliar libraries. Suppose you're using Capybara with Cucumber for the first time. It would be nice to use IRB to experiment with what Capybara can do on a particular page. You could launch an IRB session and duplicate all the Capybara setup from your Cucumber support/env.rb file. But wouldn't it be nice if you could just fire up IRB in the context of a step definition so you know everything in your IRB session matches what you'd get in the step def? Turns out you can. Here's how... Read More

Cucumber Tip: Key-Value Tables

You may not realize this: Tables in Cucumber steps don't have to have a header row. Sometimes it can work really well to use a headerless table of key-value pairs. Let's look at an example. Suppose we have a scenario that fills out an advanced search form to search for medical providers matching certain criteria. A mockup of the form looks something like this: If we were using the recently deprecated web steps generated by cucumber-rails, we might write steps to perform a search like these: Given I'm on the advanced search page And I select "Endocrinology" from "Specialty" And I choose "Yes" within "Accepts Insurance" And I fill in "ZIP Code" with "90010" And I select "5 miles" from "Search Radius" When I press "Search" But we know better than to do that, right? After all, we're trying to describe how the search logic should work, not how the form should look. Read More

The Future of Cucumber on .NET

Beginning just over two years ago, I worked with some great developers to create Cuke4Nuke as a way to bring Cucumber to .NET. Shortly after the first releases of Cuke4Nuke, TechTalk released SpecFlow, a native .NET tool inspired by Cucumber. As a pure .NET solution without Ruby dependencies, SpecFlow seemed to be easier for Microsoft shops to adopt. But Cuke4Nuke had (to me) enough advantages that I kept it going. By this summer, however, it was clear that SpecFlow had made up for most of Cuke4Nuke's advantages and had more momentum in the .NET community and was under much more active development. Read More

Getting Started with Ruby, Cucumber, and Capybara on Windows

The Ruby version of Cucumber isn't just for Rails developers. If you have a .NET or Java web or service app, Ruby can be a great language for testing. With libraries like Capybara for driving web apps and JSON, RestClient, SOAP, and others for interacting with service apps, you'll find testing in Ruby requires much less code than in C# or Java. It can be hard to find instructions for setting up Ruby and Cucumber on Windows, though, so I've compiled these to help my clients get started, and I thought they might be useful to others. I've tested this on a clean Windows 7 VM, and everything works. Your mileage may vary, but let me know if you have any issues. Read More

Cuke4Nuke Needs Your Help

Almost 2 years ago, at the 2009 AA-FTT conference, I started Cuke4Nuke to bring Cucumber to the .NET world. Since then, thanks to… Read More