The Gumball Machine - How To Quickly Identify Unit Test Cases
August 25, 2021
(Updated on April 21, 2022)
The purpose of a unit test is to confirm the intended behavior of a small piece of code separated from other parts of your application.
But if you're just stepping into the world of testing automation, you may find yourself staring at a function with a blank expression on your face while you wonder what needs to be tested in that block of code.
This writers-block equivalent is one of the most difficult and frustrating hurdles to overcome for many unit testing newcomers. Developers are often forced to sink or swim and are left without resources to help them bridge the knowledge gap.
I was taught to look at functions through the lens of a gumball machine metaphor, providing a nearly instantaneous method to craft a testing outline.
But how does this metaphor help determine what needs to be supported by unit tests?
Let's take a look.
How does a gumball machine work? There are three major events:
Think of functions as a gumball machine and follow the three steps:
It can't be that easy, right? Honestly, it should be! Unfortunately, though, it isn't uncommon to find legacy code that proves to be untestable. By pairing unit tests along with your code, you're forced to create an implementation that is easily testable (give Test Driven Development a try!). I won't go into this further; that's another article to write on a different day.
Obviously, some functions are more intricate than others - I find it's helpful to scan the function and write down the various logic branches and the possible values that can be returned. These notes become an outline for writing unit tests for that function.
Remember, the purpose of a unit test is to confirm the intended behavior of a small piece of code separated from other parts of your application. Everything funnels down to the final step of the formula - given some input, what output does the function return? If it returns the intended values, the test passes. If not, something is wrong.
Try putting the Gumball Machine into practice and see if it assists you in creating an outline for your unit test cases. I've found this method to be very helpful - and make sure you pass this along and teach others who you may find with that familiar blank expression on their faces.
Updates delivered to your inbox!
A periodic update about my life, recent blog posts, how-tos, and discoveries.
As a thank you, I'll also send you a Free CSS tutorial!
No spam - unsubscribe at any time!
- subscribers – - issues
If you enjoyed this article, you'll find these insightful too!