May, 2010


31
May 10

Concordion: spec inherited the right kind of way

I love simplicity, and hate boredom.  Anyone who knows me will echo that.

I love some aspects of simplicity in http://www.concordion.org/

One of which is the way the test fixtures are not subservient to the spec.
Fitnesse totally does the reverse of that; and it makes it very complex (remember complex = bad) with classpath setups etc.

So, as an illustration, we had a bunch of different channels (telephony jargon for web, mobile web, SMS, voice, mobile apps etc) to test recently, but they fundamentally all had the same spec (i.e. settle my balance, view call log etc).

Sure they all had different implementations, but the behaviour of the channels were fundamentally the same.

We were able to setup a project in eclipse with only the specification which was written (basically html files with some concordion markup) and then inherit this in all the other channel fixtures we were using to test.

The beauty of concordion is that it uses a JUnit runner to load the html descriptor and execute the fixtures.
This means we were able to write different implementations of the fixtures behind the scenes, and write only one description of behaviour.
Try doing that in another framework…