Blog

Brad Wood

November 04, 2013

Spread the word


Share your thoughts

If you haven't heard, the latest addition to the *Box family is TestBox and is currently out in Alpha. It allows for the standard xUnit style of testing that you may already be familiar with in tools like MXUnit. TestBox also allows for a newer style of testing known as Behavior-Driven Development or BDD. BDD helps focus on writing tests that confirm specific business needs are met by your software and typically use some sort of human-readable DSL that allows the test to be self-documenting and clear on what they are testing for in a way that translates nicely from your business specs.
TestBox's BDD runners are based on closures and only work on CF10 and Railo's latest. Here's an example:

function run(){

    describe("A suite", function(){
        it("contains a spec with awesome expectations", function(){
            expect( true ).toBeTrue();
            expect( [1,2,3] ).toBeArray();

            message = 'foo man choo'; 
            expect( message ).toMatch( '^foo' );
        });
    });

}

As you can see, the tests are very readable. In real world examples, you would focus your expect() and toXXX() methods on real business requirements that define the behavior of your models.

We also have complete backwards compatibility with MXUnit so you can switch immediately with zero test code changes!

Read up on TestBox here: http://wiki.coldbox.org/wiki/TestBox.cfm
Read our intro to BDD here: http://wiki.coldbox.org/wiki/TestBox-bdd-primer.cfm

P.S. In addition to allowing for complete extensibility in regards to assertions, test runners, and reporting, TestBox also has an asynchronous mode to speed up the time it takes to run your large test suites. http://wiki.coldbox.org/wiki/TestBox-BDD-Primer.cfm#Asynchronous_Testing

Add Your Comment

Recent Entries

Inherited a CFML Application With Few Tests? Here’s Where to Start!

Inherited a CFML Application With Few Tests? Here’s Where to Start!

You need to change an application that has been running for years.

It might be a ColdFusion customer portal, a Lucee application supporting internal operations, or a CFML system your team is preparing to modernize. People depend on it, but some of its behavior lives in old tickets, scattered documentation, and the memory of whoever has supported it longest.

Now a release is approaching. You know more testing would help. The difficult part is deciding where to begin without putting every other priority on hold.

Start with one important workflow and build evidence around what it needs to do.

Explore Ortus Quality Assurance Services

Maria Jose Herrera
Maria Jose Herrera
October 27, 2026
Your ColdFusion Upgrade Passed. Did Your Business Workflows?

Your ColdFusion Upgrade Passed. Did Your Business Workflows?

The server restarted. The administrator shows the expected version. Your homepage loads, and a few familiar screens look fine.

Would you tell the business the upgrade is complete?

Consider an illustrative scenario: a customer submits an order after an upgrade. The application saves it and displays a confirmation page. But the confirmation email never arrives, and the scheduled process that sends the order to fulfillment has not completed.

From the browser, the transaction...

Maria Jose Herrera
Maria Jose Herrera
October 22, 2026