Best of ColdFusion 10: MightySpec

Welcome to the final entry in the Best of ColdFusion 10 contest. I apologize for taking so long to “wrap” this (and technically it isn’t wrapped till I announce the winners), but hopefully the utter and complete coolness of today’s entry will make you forget how long it took me to actually get it posted. Our last entry comes from Marc Esher : MightySpec

MightySpec is a modification to MXUnit that aims to provide Behavior-Driven-Development support to your unit tests. Marc’s work is based on Jasmine. If that doesn’t mean anything to you, perhaps an example will help clear it up. Imagine your typical, simple unit test making use of an assert statement.

While this works well enough, now imagine writing tests like this:

Look at how descriptive the tests are. You could almost read this like a story. This friendlier output also shows up in the output, both in the browser…

And Eclipse:

I’ve blogged before about how impressed I am with ColdFusion 10’s closure support and this just reinforces my belief that closure support may be the most important feature added to the latest version of ColdFusion.

There is one small hitch though. While working on MightySpec, Marc encountered a bug with closures. I’ll share with you what he had to say about it:

To get it to work, you'll need to point to a custom RemoteFacade URL Here's what to do: with that version of MXUnit in your CFBuilder, drill down to mxunit/tests/mightyspec Right click, select "properties", and go to the MXUnit tab. in the URL box, use this: http://localhost:8500/mxunit/tests/mightyspec/RemoteFacade.cfc?wsdl with the server name and port to whatever your stuff is. Hit OK. Now, when you run the Specs, it'll point to that URL and run correctly.

Keep the above in mind if you plan on testing his project. So - what do you think?

Raymond Camden's Picture

About Raymond Camden

Raymond is a developer advocate for Extend by Auth0. He focuses on serverless and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support.

Lafayette, LA