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

πŸš€ ColdBox CLI 8.11: The Era of AI Skills Comes to Every ColdBox & BoxLang App

πŸš€ ColdBox CLI 8.11: The Era of AI Skills Comes to Every ColdBox & BoxLang App

ColdBox CLI 8.11 is here, and it's one of the most significant releases we've shipped for AI-assisted development. This release wires the CLI directly into our brand new public skills directory at skills.boxlang.io, brings our AI tooling in line with industry-wide agent conventions, and introduces a wave of quality-of-life improvements that make AI integration feel less like setup and more like infrastructure.

Luis Majano
Luis Majano
April 30, 2026
πŸ›°οΈ Introducing cbMCP β€” Your ColdBox App, Live to Every AI Agent

πŸ›°οΈ Introducing cbMCP β€” Your ColdBox App, Live to Every AI Agent

Today we're releasing cbMCP, the official ColdBox MCP Server β€” a BoxLang-only module that turns your running ColdBox application into a fully-compliant Model Context Protocol (MCP) server. Plug in any MCP-capable AI client β€” Claude Desktop, VS Code Copilot, Cursor, Codex, Gemini CLI, OpenCode β€” and your AI assistant gets live, read-only introspection across the entire ColdBox platform: routing, handlers, modules, WireBox, CacheBox, LogBox, schedulers, interceptors, and async executors. 🎯

Luis Majano
Luis Majano
April 30, 2026