Blog

MockBox hits 1.0, get it now!

Luis Majano November 13, 2009

Spread the word

Luis Majano

November 13, 2009

Spread the word


Share your thoughts

MockBox has now reached a 1.0 release and can be downloaded now!  For those of you who don't know, MockBox is a companion framework to the ColdBox Platform that will give you advanced mocking/stubbing capabilities; hence a Mocking Framework. Not only does it integrate into the ColdBox unit testing framework powered by MXUnit, but it can also be used as a standalone mocking/stubbing framework for ANY type of stubing/mocking you would like to do outside of ColdBox applications, in any ColdFusion application. 

I want to thank Brian Kotek for his inspiration, and the MXUnit "locos", Marc Esher and Billy Shelton.  These guys are excellent and their contributions to the ColdFusion Community are amazing!

"A mock object is an object that takes the place of a 'real' object in such a way that makes testing easier and more meaningful, or in some cases, possible at all". by Scott Bain (Emergent Design - The Evolutionary Nature of Professional Software Development) http://www.netobjectives.com/emergent-design-evolutionary-nature-professional-software-development


MockBox Features
MockBox dynamically transforms target objects into mock/stub form at runtime. The API for the mocking factory is very easy to use and provides you a very simplistic approach to mocking.  We also use $() method notations to distinguish easily when you are using mocking capabilities on your code. So what can the mock factory do for me?
  • Create mock objects for you and keep their methods intact (Does not wipe methods, so you can do method spys, or mock helper methods)
  • Create mock objects and wipe out their method signatures
  • Create stub objects for objects that don't even exist yet. So you can build to interfaces and later build dependencies.
  • Decorate instantiated objects with mocking capabilities (So you can mock targeted methods and properties; spys)
  • Mock internal object properties, basically do property injections in any internal scope
  • State-Machine Results. Have a method recycle the results as it is called consecutively. So if you have a method returning two results and you call the method 4 times, the results will be recycled: 1,2,1,2
  • Method call counter, so you can keep track of how many times a method has been called
  • Method arguments call logging, so you can keep track of method calls and their arguments as they are called.  This is a great way to find out what was the payload when calling a mocked method
  • Ability to mock results depending on the argument signatures sent to a mocked method with capabilities to even provide state-machine results
  • Ability to mock private/package methods
  • Ability to mock exceptions from methods or make a method throw a controlled exception
  • Ability to change the return type of methods or preserve their signature at runtime, extra cool when using stubs that still have no defined signature
  • Ability to call a debugger method ($debug()) on mocked objects to retrieve extra debugging information about its mocking capabilities and its mocked calls
So get to it, download it now, read the guide and enjoy your testing via MXUnit.

Add Your Comment

Recent Entries

Into the Box 2024 - Conference Slides are out!

Into the Box 2024 - Conference Slides are out!

Did you miss the live event? Get a glimpse of the fantastic content our speakers covered by reviewing their slides. Dive into topics like AWS, Cloud, Hosting, Migration, Security, CFML, Java, CommandBox, ContentBox, and more. Don't miss these valuable resources, and join us for upcoming events!

Maria Jose Herrera
Maria Jose Herrera
July 03, 2024
Ortus June 2024 Newsletter!

Ortus June 2024 Newsletter!

Welcome to the latest edition of the Ortus Newsletter! This month, we're excited to bring you highlights from our sessions at CFCamp and Open South Code, as well as a sneak peek into our upcoming events. Discover the latest developments in BoxLang, our dynamic new JVM language, and catch up on all the insightful presentations by our expert team. Let's dive in!

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang June 2024 Newsletter!

BoxLang June 2024 Newsletter!

We're thrilled to bring you the latest updates and exciting developments from the world of BoxLang. This month, we're diving into the newest beta release, introducing a new podcast series, showcasing innovative integrations, and sharing insights from recent events. Whether you're a seasoned developer or just getting started, there's something here for everyone to explore and enjoy.

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024