Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Experience Report: Running FIT and Fitnesse with Ruby

Experience Report: Running FIT and Fitnesse with Ruby

Ron Jeffries and Chet Hendrickson are widely-recognized contributors to the Extreme Programming community.  Yesterday Ron wrote about their experience installing and configuring Ruby/Fit, then Fitnesse on top of it  This article is part of a continuing series one could call "Extreme Programming Adventures in Ruby", after Ron's last book by a similar name.  It chronicles a story similar to my own when I attempted the same thing a few months ago.

In this article, you can see how Ron and Chet...
  • download and install the latest version of Fitnesse
  • find out the hard way what software Fitnesse depends on
  • install Ruby/Fit, now available as a Rubygem
  • create web pages in Fitnesse for tests
  • use the built-in fixtures that ship with Ruby/Fit
  • write their own custom fixture Ruby
In typical Ron Jeffries style, you get an entire blow-by-blow account, mostly unedited.  Every mistake, every triumph, every bit of learning.  While they don't write any code for any particular application or project, the fact that it takes them more than one sitting to set up Ruby/Fit and Fitnesse reminds us that development infrastructure requires real effort to set up, and we should not take that effort for granted.  In a similar vein, a regular activity is emerging in Pittsburgh, Pennsylvania where attendees come to spend the day learning how to set up complete development environments and deploy an empty application on various platforms, such as Windows/Websphere/DB2 and LAMP.  For agile practitioners, this is essential "Iteration 0" work.

As usual, Ron and Chet's explorations end with more questions than answers.  Ron writes:
  • We haven't built any real model code.  Right now, our fixtures are doing the work.  Frankly, I like that fact.  When I've seen teams using Fit or FitNesse, they often have built some object or objects, and start trying to build a fixture that interfaces to those objects.  It can take a long time before the test runs.  Working as we did, it's a lot like the "fake it till you make it" practice in Test-Driven Development.  Our test runs ... it's just not talking to many real objects yet.
  • We need to learn more about fixtures.  There aren't many fixtures available for Ruby Fit / FitNesse.  If we get smarter than we are right now, maybe we can get involved in trying to create some. In any case, we need to learn what's there and how to use them.
  • We should take a look at how to organize tests and what to do with them.  That will require us to figure out some little kind of application.
  • ... and probably much, much more ...
Ron Jeffries site has an RSS feed if you'd like to follow the ongoing saga.  You just might learn a thing or two.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Clarification

    by Greg Akins,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The efforts in Pittsburgh, PA are part of the Pittsburgh Coding Dojo. So far we are just having monthly, 2 hour meetings. The Iteration 0 effort is in the works, but we haven't actually had one yet.

    If anyone is interested, more details can be found at

    Greg Akins

  • Ruby Book List

    by Pat Eyler,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Ron and Chet's list, to which you link, is woefully out of date (2002). Two of the books on it are in, or almost in, second editions and the third is largely ignored these days. You might want to drop the link, or (at least) warn your readers.

  • Re: Ruby Book List

    by Deborah (Hartmann) Preuss,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks :-)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p