Not sure which product you need? Let the wizard guide you
Account managementAddress autocompleteAddress Autocomplete APIAddress dataAddress parsingAddress qualityAddress standardizationAddress validationAddress verificationAnnouncementAuthenticating APIsCustomer experienceData governanceEbookEcommerceFinance FintechGeocodingHealthcareInsuranceIntegrationsInternationalInternational Address AutocompleteInternational Address Validation APIInternational GeocodingLocation dataOn-premise vs. cloudOperationsOpinionPinpoint 2025 (Smarty's user conference) ProgrammingProperty dataProvider data accuracy seriesQGIS Geocoding Plugin - US AddressReal estateSecuritySmarty cultureSmarty don'ts Special daysSpeedTechnical supportTelecommunicationsTestingUS Address Validation APIUS Business DataUS Census Block and Tract DataUS Master Address ListUS Parcel Boundary DataUS Property Data APIUS Reverse GeocodingUS Rooftop GeocodingUS Secondary Address DataWebinarWelcome to the Address ZooWhat to look for in an address data solutionWorking for Smarty
43 items tagged ”Programming”
Privacy and security at Smarty
By Bailey Hendrickson, Thomas Isom, Danielle Dufner on June 8, 2026
<p>Smarty’s security and confidentiality approach is built around a simple idea: process address data in accordance with customer agreements and relevant privacy requirements, protect it, and limit who (and what) can access it. </p><p>We recognize that you own your compliance requirements, and we’re here to make that easier. Below is a synthesized view of the controls and practices Smarty follows to support compliance, along with details on our Enhanced Data Privacy upgrade, which provides an extra layer of protection for you and your business or organization.
Pinpoint 2025: Day 1 recap
By Andrew Townsend, Brielle Paul on November 28, 2025
<p>For two days, Smarty users gathered together with other address data experts for Pinpoint, Smarty’s first virtual user conference, where developers, industry experts, and product specialists talked all things addresses and pulled back the curtain on address data solutions. </p><p>Attendees asked questions about cloud-based software, the impact of accurate address data on fintech and insurance companies, and the ROI of good address data across all industries. </p><p>Plus, attendees got to take a peek behind the scenes and see what makes Smarty’s address data solutions tick.
Pinpoint: The Smarty virtual user conference, because the world is better validated
By Andrew Townsend, Bailey Hendrickson on October 9, 2025
<p><strong>November 2025 | 100% online | 100% awesome</strong></p><p>Join us this November for the Smarty Virtual User Conference, a two-day event packed with insights, tools, laughs, and $1000 worth of prizes. </p><p>This event is for you, whether you’re optimizing delivery accuracy, improving compliance, or just trying to figure out if your neighbor <i>really</i> has a breakfast nook. </p><h3><strong>What to expect:</strong></h3><ul><li><strong>2 days, 12 hours of content, zero fluff</strong></li><li><strong>Live sessions</strong> from address data pros</li><li><strong>Hands-on demos</strong> of Smarty’s latest tools and plugins</li><li><strong>Giveaways galore, </strong>like gift cards, swag, and even a chance at a massive LEGO set</li><li><strong>Hidden Easter eggs</strong> throughout the event (no, seriously—find them and win)</li><li><strong>An after-party with games</strong> (shoutout to Brady Amundson)</li></ul><h3><strong>Tailored tracks for every role</strong></h3><p><img src="https://d3jlqkabnnke2x.
Inside Smarty® - Irina O'Hara
By Andrew Townsend, Bailey Hendrickson on January 21, 2025
<p>Irina O'Hara is one of our uniquely clever, expert frontend developers. She’s immensely talented and has had a vital impact on our website redesign. When it came time to spotlight her, Irina was a joy to sit down with and get to know a little better. </p><p>To get to the basics, she writes code and creates awesome websites, and she’s darn good at both. </p><h2>Background</h2><p>Irina was born and raised in St. Petersburg, Russia. However, she wasn't born a development expert and had other aspirations from the start.
Inside Smarty® - Acacia Warner
By Andrew Townsend, Bailey Hendrickson on December 26, 2024
<p>Acacia Warner is easily one of the most multifaceted, well-rounded, and uniquely talented people we have here at Smarty. She is an expert ice skater, violinist, and avid gamer. The most important people in her world are her family members, and she loves that her work at Smarty allows her to go home and actually <i>be</i> home. </p><p>So what does she do for Smarty? She writes and maintains code for our products, specifically our international suite of products. </p><h2>Background</h2><p><img src="https://d3jlqkabnnke2x.
Programmers don't fully understand addresses
By Andrew Townsend, Bailey Hendrickson on September 20, 2024
<p>Nerds. </p><p>While programmers/coders/engineers are extremely clever, we've found they may not fully understand addresses. <br><br>Sure, they're ready to talk about variables, loops, arrays, the scope of stuff, callbacks, hosting, events, overloading, pattern matching, packets, elements, and more. But if you point out that most house numbering starts at "1" and not "0," their heads may explode. </p><p>We've worked with quite a few developers and helped them understand the facts around address data, beginning with our <i>own</i> engineers.
Cleaning address databases with Smarty's lead developers
By Andrew Townsend on September 10, 2024
<p>We recently brought together Kent Gividen and Bryan Amundson, two of Smarty's brilliant lead developers, to discuss the importance of maintaining a clean address database and how Smarty's innovative tools can make this process easier and more efficient. </p><h3><strong>Question:</strong> "How should users prepare their address data before using Smarty's tools?"</h3><blockquote><p><i><strong>Kent:</strong> "To begin with, if you have a database that you're looking to clean the addresses for, you can dump those addresses into a CSV file.
Address Autocomplete API JavaScript SDK tutorial
By Andrew Townsend on July 24, 2024
<p><strong>Webinar recap:</strong> Ready to take your web forms from "meh" to "wow"?</p><p>In our recent webinar, we gave tips and tricks and demonstrated live coding magic. </p><h2>The essentials of Smarty's address autocomplete API</h2><h4>JavaScript SDK magic made easy</h4><p>Integrating Smarty’s Address Autocomplete API using our JavaScript SDK is a breeze. Smarty also has SDKs for . NET, Android, Go, iOS, Java, PHP, Python, Ruby, and Rust, making setting up client credentials, building functions, and handling address lookups look like child’s play.
Inside Smarty™ - Dirk Whatcott
By Dan Lambourne on March 13, 2024
<p>Meet Dirk, Smarty's very own Swiss Army knife, with a smile. Officially, our Operations Engineer Team Lead, he's our go-to guru for IT, building management, APIs, and more. He’s also known around the office for running the <a href="/blog/inside-smarty-unique-culture#:~:text=something%20truly%20unique. -,Lunchtime%20Movie%20Script%20Reading,-Imagine%20you%27re%20in"><u>movie script reading group</u></a> (A group of Smarty workers who spend their lunch reading through well-known and classic movie scripts.
Empowering the next generation: The hour of code initiative
By Max Pothier on December 6, 2023
<p>In an era dominated by technology, grasping the language of computers – coding – is increasingly essential. The Hour of Code, a global initiative, aligns with this need by making coding more approachable and broadening participation in computer science. This effort parallels Smarty's dedication to technological innovation, striving to simplify and demystify technology for widespread understanding and engagement. </p><h2>The movement</h2><p>The Hour of Code started as a one-hour introduction to computer science, designed to simplify code and show that anybody can learn the basics.
Inside Smarty™ - Trey Rutter
By Susan Young on October 25, 2023
<p>Today, we spotlight <a href="https://www. smarty. com/company/team/trey-rutter"><u>Trey Rutter, our Dev/Ops IT Associate</u></a>. Trey is the wizard behind the scenes, helping to ensure that our hardware and address data solutions work seamlessly to deliver accurate and reliable information. Let's get to know Trey better. </p><h2><strong>What is the most surprising thing you learned about addresses after joining Smarty?</strong></h2><blockquote><p><i>I found it surprising how a </i><a href="https://www.
Inside Smarty™ - Michael Whatcott
By Dan Lambourne on August 28, 2023
<p>In today's fast-paced tech world, it's essential to gain insights from those who have been in the trenches, building, testing, and creating software that impacts our daily lives. One such individual is Michael Whatcott, a key figure at Smarty. Let's dive into his journey, approach, and the knowledge he's garnered over the years. </p><p>But that’s just Michael's professional bio. To know who Michael is, we’ve asked for some clarification. </p><h2><strong>Explain it to a 10-year-old: What do you do at Smarty?</strong></h2><blockquote><p><i>I work on the tools and systems that make payments, manage subscriptions, and create reports here at Smarty.
How to measure, manage, and minimize technical debt
By Andrew Townsend on August 2, 2023
<p>Spend enough time as a software developer, and you learn about the existence and pain of technical debt. </p><p>Understanding, managing, and communicating technical debt is crucial. It allows us to build more maintainable software, improve our productivity, and even boost team morale. </p><p>We recently hosted a webinar with one of our software development team leads, Kiersten Nelthorpe, and senior software developer Cody Robertson, where they gave valuable insights and strategies to help you deal with technical debt in your work.
Use ChatGPT to write better code, faster
By Andrew Townsend on June 28, 2023
<p>In <a href="/blog/use-chatgpt-for-better-code#webinar">our recent webinar</a>, we brought together two of our software engineer experts, Adam Charlton and Ryan Cox, to demonstrate how to build a working application using ChatGPT to generate most of the code. </p><p>We know what you're thinking: ChatGPT can't take our jobs; we've tried. </p><p>This is wonderfully true. ChatGPT can pull together useful bits of information but still needs to be guided and curated by a human, preferably one with subject knowledge.
Inside Smarty - Kiersten Nelthorpe
By Dan Lambourne on June 22, 2023
<p>We have the luxury at Smarty of working with some incredibly intelligent, kind, friendly, and in many cases, funny individuals. Today we showcase one of those fantastic individuals, Kiersten Nelthorpe. </p><p>Kiersten is one of our amazingly talented Software Engineers and is the team lead over our Backend Accounts Engineering team. </p><p>Her accomplishments include building Microsoft API services for enterprise software, developing features for supply chain tools for Vivint, and building backend reporting APIs for Imagine Learning.
Inside Smarty - Ryan Cox
By Dan Lambourne on May 2, 2023
<p>We have the luxury at Smarty of working with some fantastically intelligent, kind, friendly, and in many cases, funny individuals. Today we showcase one of those fantastic individuals, Ryan Cox. </p><p>Ryan has a history of high-quality performance while problem-solving and team-building at large software companies along Silicon Slopes. You want experience? Ryan has experience. </p><p>We're talking 61 years collectively in Java, Javascript, Typescript, SQL, Angular, AWS, and loads more. As a key developer at each company he's ever worked at, he's keeping the ball rolling by improving the quality of work we do here at Smarty every day.
Determining total cost of ownership of on-premise vs. cloud software
By Davin Perkins on September 22, 2022
<p>As you're evaluating potential new business software for your organization, inevitably, someone will bring up the cost. Your purchasing department will likely want to know if moving to the cloud is cheaper than on-premise solutions or vice versa. "Money doesn't grow on trees," they might remind you. </p><p><strong>To truly compare cloud vs on-premise costs, you should first calculate the total cost of ownership or TCO. The TCO is a financial estimate created to help buyers and owners determine the direct and indirect lifetime costs of a product or service.
Deployment speed & complexity of on-premise vs. cloud software
By Davin Perkins on August 25, 2022
<p>One of the biggest questions in IT infrastructure planning is whether to go with on-premise or cloud software solutions. Each type of software comes with its own pros and cons. </p><p><strong>To help organizations choose the software that best fits their needs, we created an </strong><a href="https://www. smarty. com/documents/ebooks/on-premise-vs-cloud-software. pdf"><strong>executive guide</strong></a><strong> that walks you through 6 key factors and breaks down cloud and on-premise strengths and weaknesses for each factor.
Common mistakes when calling Smarty APIs
By Andrew Townsend on July 28, 2022
<p>There are two types of frequent errors: 401 "Authentication Required" errors, and 402 "Payment Required" errors. </p><p>If you keep reading, you can learn about both, as well as these other hot topics:</p><ul><li><a href="#status-code-401-authentication-required">Status code 401 - Authentication required</a><ul><li><a href="#how-to-authenticate-api-requests">How to authenticate API requests</a></li><li><a href="#common-mistakes-in-client-side-requests">Common mistakes in client-side requests</a></li><li><a href="#common-mistakes-in-server-side-requests">Common mistakes in server-side requests</a></li></ul></li><li><a href="#status-code-402--payment-required">Status code 402 - Payment required</a></li><li><a href="#when-in-doubt-contact-support">When in doubt, contact support</a></li></ul><h2>Status code 401 - Authentication required</h2><p>If you're seeing this error there's a chance that there's an issue with your API key, there's a mistake inside your client-side request, or a mistake in the server-side request.
Women or femme in code: Expanding opportunity Q&A part 1
By Anne Arnold on April 27, 2022
<p>This is part 1 of a 2 part series. You can <a href="/blog/women-femme-in-code-expanding-opportunity-part-2"><strong>read part 2 here</strong></a>. </p><p><i>This edition of our blog comes from a special guest writer, Anne Arnold, daughter of Smarty’s own Wes Arnold. Anne will soon graduate high school and as part of her career exploration, she had the opportunity to sit down with the women on Smarty’s software development team. </i></p><p><i>They each shared how they discovered their love for coding, what it’s like to be the only woman in class, and how they’re helping spread the opportunities for prospective women in code like Anne.
5 principles for creating stupidly brilliant JavaScript applications
By Andrew Townsend on April 11, 2022
<p>Have you ever tried to add a minor feature to your application only to discover that you’ll have to re-write large blocks of code first? Or maybe you’ve spent hours deciphering hundreds, or perhaps thousands, of lines of existing code just to find out a task only required two lines of additional code. If you’re like most developers, you’ve wasted countless, frustrating hours wading through immensely complicated code trying to force it to do things it wasn’t built for. </p><p>In his presentation, Mike Manwill, Frontend Team Lead here at Smarty, discussed 5 principles to help you create stupidly-simple applications that are maintainable, extendable, and bug-resistant.
Setting up US Address Autocomplete API to autofill your forms
By Wes Arnold on March 11, 2022
<p>Many businesses now collect data online. One could argue that it is nearly impossible to succeed in modern business without some sort of online portal in which there is an exchange of information between the provider and the customer. </p><p>But how do you ensure that the information being input by the customer (or potential customer) is accurate?</p><p>While there is no way to ensure that Bobby Duncan doesn’t put “Sammy Sosa” in the name line on a form, there IS a way to ensure that he’s putting in a valid mailing address for you to mail his package to.
SECURITY ANNOUNCEMENT: Removing old TLS versions
By Jonathan Oliver on October 17, 2019
<p>TLS (and its predecessor SSL) are cryptographic protocols that provide authentication and data encryption for clients connecting with web servers. As new vulnerabilities are discovered, older cryptographic protocol versions are deprecated to maintain secure environments. </p><p>On Tuesday, January 21, 2020, Smarty will require clients to use TLSv1. 2 or greater to connect with Smarty APIs without interruption. Clients using TLSv1. 0 or TLSv1. 1 will no longer be able to connect. Please refer to our documentation for more information: https://www.
2018-11-13 Incident post-mortem report
By Jonathan Oliver on November 16, 2018
<p>At approximately 1:30 PM Mountain Time (3:30 PM Eastern) on November 13, 2018, we observed a significant latency spike from our external monitoring tools that we configured to access our load balancing tier of our cloud-based APIs. These monitoring tools provide full, end-to-end testing and are meant to simulate a complete user experience with our application. </p><p>By design our systems can easily process in excess of 25x the usual amount of traffic we receive. We do this because of our customer usage patterns wherein we may observe a 10-fold increase in traffic within a short period of time—usually a few minutes or even a few seconds.
Go naming conventions
By Michael Whatcott on October 18, 2018
<p>It's been said that naming is one of the <a href="https://www. martinfowler. com/bliki/TwoHardThings. html">two hardest problems in computer science,</a> along with cache invalidation and 'off-by-one' errors. (See what I did there?) Do you ever find yourself wondering what policies and practices you could adopt to make your life easier when reading code you wrote months ago? Or maybe you're up at night wishing you knew how to write code in such a way as to maximize adoption and convenience for your users? Well, look no further because we've anticipated the need, solved the problem, and now we're sharing our knowledge and wisdom at no charge, all out of the goodness of our hearts in this comprehensive, totally no-nonsense (nudge, nudge, wink, wink) style guide of Go naming conventions.
Cloning private dependencies in Docker and Go
By Jonathan Oliver on September 13, 2018
<p>One topic that seems to come up repeatedly on Stack Overflow or other online forums is the topic of how to <code>go get</code> private dependencies. Specifically, if I have a private Git repository on Github or Bitbucket, how do I bring that code locally via the <code>go get</code> tool such that automated builds can produce a clean, consistent build without interaction from a user? This problem is largely solved for public Github dependencies but continues to be a challenge for private dependencies.
Let's build an xUnit-style test runner for Go!
By Michael Whatcott on July 2, 2018
<p>Writing test functions in Go is easy:</p><pre><code class="language-plaintext">package stuff import "testing" func TestStuff(t testing. T) { t. Log("Hello, World!") } </code></pre><p>Running test functions is also easy:</p><pre><code class="language-plaintext">$ go test -v === RUN TestStuff --- PASS: TestStuff (0. 00s) stuff_test. go:6: Hello, World! PASS ok github. com/smartystreets/stuff 0. 006s </code></pre><p>Preparing shared state for multiple test functions is problematic. The usual recommendation is to use <a href="https://github.
Scanning CSV in Go
By Michael Whatcott on May 5, 2018
<p>For the purpose of this article, consider the following CSV data, slightly modified from the <a href="https://pkg. go. dev/encoding/csv#exampleReader">docs for <code>encoding/csv</code></a>:</p><pre><code class="language-plaintext">csvData := strings. NewReader(strings. Join([]string{ , , , , }, "\n")) </code></pre><p>Here's how you read the data, line by line, using the <code>Reader</code> provided in that package:</p><pre><code class="language-plaintext">reader := csv. NewReader(csvData) for { record, err := reader.
A history of testing in Go at Smarty
By Michael Whatcott on March 28, 2018
<p>I was recently <a href="https://github. com/smartystreets/goconvey/issues/360#issuecomment-368348056">asked two interesting questions</a>:</p><ol><li>Why did you move from GoConvey to <a href="https://github. com/smartystreets/gunit">gunit</a>?</li><li>Are you recommending folks do the same?</li></ol><p>These are great questions, and since I'm a co-creator of GoConvey and the principal author of Gunit, I feel responsible for giving a thorough answer. For the impatient, here's the TL;DR:</p><p>Question 1: Why did you move to gunit?</p><blockquote><p>After using GoConvey and feeling consistent friction with that approach, we came up with an alternate approach that was more aligned with what we value in a testing library and which eliminated said friction.
Testing in Go by Example: Part 6
By Michael Whatcott on September 25, 2017
<p>For this installment of the <a href="/blog/tags/testing">Testing in Go series</a> 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. </p><p>We generally refer to these comparison functions as <strong>assertions</strong> (<i>cue ominous background music and spooky sound effects</i>). You may have already read the opinions found on the Golang FAQ related to assertions.
Our testing tools
By Michael Whatcott on November 3, 2016
<h2>Introduction</h2><p>TL;DR: Choose an approach to software testing that helps your organization create the best possible end results. That might mean using and/or creating a few tools and/or libraries along the way. Or, maybe not. What follows is a description of what we do at SmartyStreets, couched as a response to <a href="https://danmux. com/posts/thecultofgotest/">Dan Mullineux's equally valid way</a> of doing things. </p><h3>The cost</h3><blockquote><p>A favourite test helper library, with some simple test assertion functions clearly has some value.
How to setup a tinc VPN
By Jonathan Duncan on October 23, 2015
<p>I was given the task of setting up a <a href="https://tinc-vpn. org/">tinc</a> VPN so that we could test performance for comparison against other VPN systems. This task took much longer than it should have. For that reason, I am making this post to help me and others remember how to do it again in the future. </p><hr><p>Installing <code>tinc</code> is straightforward enough. You can <a href="https://tinc-vpn. org/download/">download the latest release</a> and build it or install it from your favorite package manager.
Performance testing with Phoronix
By Jonathan Duncan on October 5, 2015
<p>Not every server is made equally. On dedicated servers, the hardware varies widely. On virtual and cloud servers, the resource allocations also vary widely. Some servers are CPU-optimized for maximum computing power. Others focus on having a lot of memory. Some servers are built to have a good balance of all system resources. </p><p>Hardware aside, we require many differing tasks of our servers. Some applications are processor hungry, some need large amounts of disk space, while others take up a lot of memory.
Testing in Go by example: Part 5
By Michael Whatcott on September 15, 2015
<p>For this installment of the <a href="/blog/tags/testing">Testing in Go series</a> I'll share a really nifty way to deal with time in your unit tests. When the behavior you are testing depends on the current time it can be tricky to assert on the results because the current time is a moving target. So, usually we end up resorting to approximations in our assertions that, while functional, always bother me a bit. In some cases, depending directly on the system's current time prevents acceptable test coverage.
Testing in Go by example: Part 4
By Michael Whatcott on August 11, 2015
<p>I think it's time for a slight detour. In <a href="/blog/go-testing-part-1-vanilla">part 1</a> we covered the basics of testing in go. In <a href="/blog/go-testing-part-2-running-tests">part 2</a> we covered a few slick ways to execute tests. In <a href="/blog/go-testing-part-3-convey-behavior">part 3</a> we covered some of our recent endeavors at Smarty to build on the basics. Toward the end of that post, we went into some detail regarding our approach to assertions. The assertions referenced in the GoConvey project are actually their own separate project that are imported into GoConvey.
Appendix: America's sex offender registries
May 26, 2015
<p>This post contains additional data referenced from the <a href="/blog/sex-offender-registry-illusions">original sex offender registry post</a>. </p><p> </p><h3>Records containing the following were excluded from our statistical analysis:</h3><p><a href="/blog/sex-offender-registry-illusions#our-list-return">[Click to return to article]</a></p><pre><code class="language-plaintext">state=?? and zip=00000 or 11111 street contains "not available" street contains "incarcerated" or "incac" or "incrc" or "incarc" street contains "prison" street contains "absconded" or "absconced" or "absc" street contains "detention" or "det" or "det ctr" or "det center" or "detain" or "dt ctr" street contains "deported" street contains "incarc" street contains "unknown" or "unk" street contains "deceas" or "deseas" street contains "jail" street contains "custody" street contains "immigration" street contains "transien" or "transnt" or "trnsnt" street contains "homeles" or "homles" street contains "inmate" street contains "out of state" street contains "xxx" street contains "failure" or "fail" street contains "fail" street contains "register" street contains "verif" street contains "behav" street contains "institut" or "inst" street is blank street contains "vicinity" street contains "fugit" street contains "no longer" street contains "correctio" or "corr" or "correct" street contains "complia" street contains "reform" street contains "block of" or "blk of" or "blk" state is blank and city contains "unk" street contains "&" street contains "underpass" street contains "offend" street contains "resident" street contains "between" city contains "unknown" AND zip contains "00000" street contains "moved" street contains "nonresident" street contains "unconfirmed" state and zip are same AND city is blank zip contains "jail" city contains "Not available" and zip is unintelligible as a zip street = city street contains " street + city + state has more than two entries street contains "complex" street contains "reincarc" city contains "convict" street contains "usp" street contains "penit" street contains "hosp" street contains "louis" and city is "St.
Code as art
May 21, 2015
<p>Here at Smarty, we're mostly programmers and developers. There are a few needles in the haystack here that don't know "Unix" from "eunuchs", which is unfortunate, but we're working on that. And because we're all tech geeks over here, we like to talk about code, and tech, and why all that stuff is important. In that spirit, we decided to talk about code in a way that maybe all of us should have considered a long time ago. </p><h2>Your hidden meanings</h2><p>Let's start with a scenario. Imagine you go on a museum tour.
Testing in Go by example: Part 3
By Michael Whatcott on May 11, 2015
<h2>Review</h2><p>Welcome to part 3 of our <a href="/blog/tags/testing">"Testing in Go" series</a>. If you're new here, feel free to <a href="/blog/tags/testing">catch up</a> before reading on. </p><p>In <a href="/blog/go-testing-part-1-vanilla">part 1</a> of this series I eluded to <i>our perceptions</i> of the standard testing tools provided by the Go tool and the standard library and what was missing <i>for us</i>. We all have different expectations of a testing tool and so it's no wonder that <a href="https://github.
Testing in Go by example: Part 1
February 27, 2015
<p>Here's part 1 of our <a href="/blog/tags/testing">"Testing in Go" series</a>. </p><h2>Introduction</h2><p>Thinking about trying <a href="https://go. dev/">Go</a>? You won't regret it! It's great that testing is baked into the <a href="https://pkg. go. dev/testing"><code>"testing"</code> package</a> from the standard library and the corresponding <a href="https://pkg. go. dev/cmd/go#hdr-Testpackages"><code>go test</code> command</a> (which has all sorts of useful and interesting <a href="https://pkg.
Testing in Go by example: Part 2
February 27, 2015
<p>Here's part 2 of our <a href="https://www. smarty. com/blog/tags/testing">"Testing in Go" series</a>. If you're new, feel free to <a href="https://www. smarty. com/blog/tags/testing">catch up</a> before reading on. </p><hr><h2>Basics</h2><p>You've already learned how to execute tests in Go for a single package. </p><pre><code class="language-plaintext">$ go test </code></pre><p>There's a bit more to it, though. You can run any package from anywhere if you provide the import path. For example, this command runs the actual tests for the "testing" package from the standard library:</p><pre><code class="language-plaintext">$ go test -v testing </code></pre><p>If you've already run <code>go get github.
HTML coverage reports with GoConvey
February 18, 2014
<p><a href="https://github. com/smartystreets/goconvey/issues/106">You asked for it</a> and <a href="https://github. com/smartystreets/goconvey/issues/144">now you've got it</a>. </p><p>For packages that pass all tests, coverage reports are generated and made available by clicking the package name, which in that case becomes a link (provided you've cleared your browser's cache!). </p><p><img src="https://d3jlqkabnnke2x. cloudfront. net/goconveycoveragebarc7288d4b3c. png" alt="Click the package name" height="316" width="588"></p><p>Right now the coverage command that is run is something like this:</p><pre><code class="language-plaintext">$ go test -covermode=set -coverprofile=<packagename>.
Your Convey needs more focus
February 7, 2014
<p>One of the great benefits of TDD/BDD is that you usually don't have to spend much, if any time at all in a debugger. To enter a debugger is to admit a loss of control over the system under test. Even so, there are times when you do need to debug something, even if you're maintaining the discipline. </p><p>Lately, most of my coding is in GoLang. Coming from using an IDE almost exclusively to write Python (using PyCharm) and C# (using VS and ReSharper), and knowing how great the visual debugging tools are it's hard to fathom using a console-based debugger for GoLang code.
GoConvey - (yet) another testing tool for GoLang
By Jonathan Oliver on December 26, 2013
<p>It's now been a few months since I decided that the kind of testing tools I wanted for Go programming hadn't yet been created (or I just hadn't found them yet. . . ). So, about 4 months ago I started work on GoConvey and a month later came the first release. </p><p>The coolest thing about GoConvey (other than the <a href="https://github. com/smartystreets/goconvey/wiki/Composition"><u>clean DSL</u></a>, comprehensive set of <a href="https://github. com/smartystreets/goconvey/wiki/Assertions"><u>built-in assertions</u></a>, and the fact that it <a href="https://github.