New 42-day free trial
Smarty

Testing in Go by Example: Part 6

Michael Whatcott
Michael Whatcott
 | 
September 25, 2017
Tags
Smarty header pin graphic

For this installment of the Testing in Go series we'll be talking about a grouping of packages that facilitate general-purpose comparisons in various contexts. Since the most common context is testing it seemed like this series was the right place for the discussion.

We generally refer to these comparison functions as assertions (cue ominous background music and spooky sound effects). You may have already read the opinions found on the Golang FAQ related to assertions.

"Why does Go not have assertions?"

Go doesn't provide assertions. They are undeniably convenient, but our experience has been that programmers use them as a crutch to avoid thinking about proper error handling and reporting. Proper error handling means that servers continue operation after non-fatal errors instead of crashing...

"Where is my favorite helper function for testing?"

Go's standard testing package makes it easy to write unit tests, but it lacks features provided in other language's testing frameworks such as assertion functions. An earlier section of this document explained why Go doesn't have assertions, and the same arguments apply to the use of assert in tests.

In general, we agree that in many scenarios, a single assertion failure shouldn't prevent a test from running. So, by default, the assertion functions we use don't do that. Problem solved.

Subscribe to our blog!
Learn more about RSS feeds here.
rss feed icon
Subscribe Now
Read our recent posts
Smarty announces virtual user conference: Save the date for Pinpoint, by Smarty
Arrow Icon
OREM, UT, August 18, 2025—Smarty®, the leader in address data intelligence, is inviting developers, data decision-makers, and certified address nerds to join our first-ever 2-day virtual user conference: Pinpoint. This interactive online event will begin on November 11, 2025, and bring together a verifiably fun mix of industry experts, technical deep dives, and business-boosting insights. Participants will walk away with a better understanding of how address validation, geocoding, data enrichment, and autocomplete can solve their toughest data challenges—and maybe even score some sweet prizes while they’re at it.
How address data became Fabletics's (and others') secret sauce
Arrow Icon
Address data accuracy isn't just about getting mail delivered. Having quality address data will directly impact revenue, compliance, and customer experience. In a recent webinar, we explored real-world case studies showing how companies across industries leverage address verification and geocoding to solve expensive problems and unlock new opportunities. Healthcare data: Compliance and accuracy at scaleCuratus, a healthcare data provider, faced a critical challenge with provider directory accuracy.
Usage notifications | Get notified before hitting your lookup limit
Arrow Icon
Burning the end of a brisket can lead to some tasty results (we’re looking at you, burnt ends), but unexpectedly burning through your lookups? Not so appetizing. All users receive notifications when their API usage reaches 90% and 100%. To help users further leverage their lookups, Smarty’s cooked up a solution: the ability to get notification emails when usage reaches three additional intervals: 25%, 50%, and 70%. With these notifications working alongside usage by key and limit by key, you can manage your API usage better.

Ready to get started?