Blog

Luis Majano

March 11, 2016

Spread the word


Share your thoughts

Team TestBox is proud to bring our latest release to the masses, v2.3.0.  This release includes some minor fixes and a plethora of cool new features, mostly thanks to Mr Eric Peterson and our Slack community. It has been incredible to get so much community support in this project and so many pull requests and even to our documentation. So thank you so much for supporting and believing in us. This release is for you!

Getting Started

All the docs have been updated in our documentation book and check out the what's new page for an in-depth overview of this release.

You can also very easily get started or update your project with TestBox via CommandBox CLI for ColdFusion (CFML):


# install testbox
box install testbox

# update testbox
box update testbox

#what you thought there was more?

Major Features

This is a big minor release including some great new functionality like life-cycle annotations, complete nested aroundEach() abilities, line number problem identifications, Travis support, new $throws() expressive method for mocking exceptions, and tons of other little updates to make your testing easier and pleasurable. Enjoy!

Release Notes

Here are all the tickets for this release

Bugs Squashed

  • [TESTBOX-140] - Allow Mocking of an Interface that implements another interface

New Features

  • [TESTBOX-158] - Give line number when an expectation fails or errors out
  • [TESTBOX-150] - new expressive exception throwing goodness: $throws()
  • [TESTBOX-161] - Recursively call parent `aroundEach` functions in reverse tree format
  • [TESTBOX-162] - Add annotation hooks for lifecycle methods
  • [TESTBOX-163] - remove the TestBox tag contexts from the beginning of Failure Origins
  • [TESTBOX-164] - Make test harness easier for development via CommandBox
  • [TESTBOX-165] - Add travis build support for supporting pull requests and test matrixes
  • [TESTBOX-166] - Update API Docs to leverage DocBox instead

Improvements

  • [TESTBOX-160] - Explicitly place the instance "scope" in the variables scope due to lucee full cascade support
  • [TESTBOX-167] - update string buffers to string builders

Add Your Comment

Recent Entries

BoxLang Under the Lens: Observability Meets AI - Free Webinar

BoxLang Under the Lens: Observability Meets AI - Free Webinar

Your application is slow. Something is failing. Where do you start looking?

On October 28, 2026, at 11:00 AM CDT, join Luis Majano, Ortus Solutions CEO and BoxLang creator, for a live, hands-on look at how observability and AI come together in BoxLang.

BoxLang Under the Lens: Observability Meets AI introduces BxLens, Lensy, and the additional monitoring capabilities of BoxLang+....

Victor Campos
Victor Campos
October 19, 2026
QR Codes Come to BoxLang Images

QR Codes Come to BoxLang Images

The bx-image module can now generate and read QR codes. Two new functions, a string member function, and two new bx:image actions. No extra dependencies for you to manage.

Luis Majano
Luis Majano
October 14, 2026