New 42-day free trial Get it now
Smarty

Testing in Go by Example: Part 6

Smarty header pin graphic
Updated October 29, 2025
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.
Read our recent posts
Functional options pattern in Go: Flexibility that won’t make future-you sigh loudly
Arrow Icon
SDK authors live in a permanent tug-of-war:Users want a simple constructor they can paste and ship. Maintainers want room to grow without breaking everybody’s build on the next release. That second part matters a lot right now, because a lot of people are still relatively early in their software careers. Approximately one in three developers has coded professionally for four years or less. That matters because unclear or fragile APIs disproportionately hurt newer developers—they don’t have scars yet.
Ambiguous address matches: What they are and why compliance teams should care
Arrow Icon
If you’ve ever run into an address that seems to exist in more than one place, congratulations—you’ve discovered the world of ambiguous address matches. They’re the Schrödinger’s cat of location data: valid, yet potentially two distinct locations. This blog will focus on a few key things: What are ambiguous address matches?Why ambiguous address matches matter for compliance and customer serviceHow to handle matches with address ambiguityWhy you should inform your customers of ambiguous address matchesOur final thoughts on ambiguous address matchesWhat are ambiguous address matches?An ambiguous address match occurs when an entered address resolves to two or more valid locations with slight but meaningful differences.
Smarty's January 2026 release adds parcel boundaries, provisional addresses, and smarter international geocoding
Arrow Icon
OREM, UT, Jan 27, 2026—Smarty®, an expert in address data intelligence, today announced a three-part release designed to help organizations turn messy, fast-changing location data into operational confidence. The January 2026 bundle introduces: 1) A brand-new parcel dataset, 2) Expands provisional address programs into core U. S. products, and 3) Upgrades Smarty’s International Geocoding engine—giving organizations more precision and more usable signals for automation at scale. “Address data is never ‘done.

Ready to get started?