BoxLang 🚀 A New JVM Dynamic Language Learn More...


v5.4.0+7 Testing

Total Downloads Latest Stable Version Apache2 License

Copyright Since 2005 TestBox by Luis Majano and Ortus Solutions, Corp

TestBox is a Behavior Driven Development (BDD) and Test Driven Development (TDD) framework for ColdFusion (CFML). It also includes mocking and stubbing capabilities via its internal MockBox library.


Apache License, Version 2.0.


TestBox is maintained under the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the following format:


And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)
  • New additions without breaking backward compatibility bumps the minor (and resets the patch)
  • Bug fixes and misc changes bumps the patch

Source Code

Bug Tracking



Community and Support

Join us in our Ortus Community and become a valuable member of this project TestBox BDD. We are looking forward to hearing from you!!

Official Site


  • Lucee 5+
  • Adobe ColdFusion 2018+


You can visit the TestBox documentation page to view all of its features and capabilities. To install TestBox just drop it in your web root as /testbox or create a mapping in your CFML administrator or Application.cfc that points to the directory you installed TestBox and create the mapping /testbox that points to it.

You can also use CommandBox to install and leverage TestBox for commandline executions, test generations, watchers and much more:

Stable Release

box install testbox

Bleeding Edge Release

box install testbox@be

Bleeding edge builds are updated automatically as code is committed.


Because of His grace, this project exists. If you don't like this, then don't read it, its not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5


"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


5.4.0 - 2024-05-13


5.3.1 - 2023-09-13


5.3.0 - 2023-08-01

New Features

  • TESTBOX-379 New expectations: toBeIn(), toBeInWithCase() so you can verify a needle in string or array targets
  • TESTBOX-380 New matchers and assertions: toStartWith(), toStartWithCase(), startsWith(), startsWthCase() and their appropriate negations
  • TESTBOX-381 New matchers and assertions: toEndWith(), toEndWithCase(), endsWith(), endsWithCase() and their appropriate negations


  • TESTBOX-378 onSpecError suiteSpecs is invalid, it's suiteStats

5.2.0 - 2023-07-28

New Features

  • TESTBOX-375 Updated mixerUtil for faster performance and new approaches to dynamic mixins
  • TESTBOX-376 Add bundlesPattern to testbox.system.TestBox init method
  • TESTBOX-377 TestBox Modules


  • TESTBOX-346 expect(sut).toBeInstanceOf("something") breaks if sut is a query
  • TESTBOX-374 cbstreams doesn't entirely work outside of ColdBox


  • TESTBOX-20 toBeInstanceOf() Expectation handle Java classes

5.1.0 - 2023-07-06


  • Update to cbstreams 2.x series for compat purposes.


  • Small regresion on TESTBOX-370 toHaveKey works on queries in Lucee but not ColdFusion

[5.0.0] - 2023-05-10


  • TESTBOX-341 toHaveLength param should be numeric
  • TESTBOX-354 Element $DEBUGBUFFER is undefined in THIS
  • TESTBOX-356 Don't assume TagContext has length on simpleReporter
  • TESTBOX-357 notToThrow() incorrectly passes when no regex is specified
  • TESTBOX-360 full null support not working on Application env test
  • TESTBOX-361 MockBox Suite: Key [aNull] doesn't exist
  • TESTBOX-362 Cannot create sub folders within testing spec directories.


  • TESTBOX-333 Add to repo
  • TESTBOX-339 full null support automated testing
  • TESTBOX-353 allow globbing path patterns in testBundles argument
  • TESTBOX-355 Add debugBuffer to JSONReporter
  • TESTBOX-366 ANTJunit Reporter better visualization of the fail origin and details
  • TESTBOX-368 Support list of Directories for HTMLRunner to allow more modular tests structure
  • TESTBOX-370 toHaveKey works on queries in Lucee but not ColdFusion


  • TESTBOX-371 Add CoverageReporter for batching code coverage reports
  • TESTBOX-137 Ability to spy on existing methods: $spy()
  • TESTBOX-342 Add development dependencies to box.json
  • TESTBOX-344 Performance optimizations for BaseSpec creations by lazy loading external objects
  • TESTBOX-345 add a skip([message]) like fail() for skipping from inside a spec
  • TESTBOX-365 New build process using CommandBox
  • TESTBOX-372 Adobe 2023 and Lucee 6 Support



$ box install testbox

No collaborators yet.
5.00 / 2
  • {{ getFullDate("2014-05-29T16:22:57Z") }}
  • {{ getFullDate("2024-05-13T21:10:07Z") }}
  • 18,290
  • 1,559,330