Название: The Power of Go: Tests (Go 1.24 edition) Автор: John Arundel Издательство: Bitfield Consulting Год: 2025 Страниц: 278 Язык: английский Формат: pdf (true), epub Размер: 10.2 MB
What does it mean to program with confidence? How do you build self-testing software? What even is a test, anyway?
Welcome to the thrilling world of fuzzy mutants and spies, guerilla testing, mocks and crocks, design smells, mirage tests, deep abstractions, exploding pointers, sentinels and six-year-old astronauts, coverage ratchets and golden files, singletons and walking skeletons, canaries and smelly suites, flaky tests and concurrent callbacks, fakes, CRUD methods, infinite defects, brittle tests, wibbly-wobby timey-wimey stuff, adapters and ambassadors, tests that fail only at midnight, and gremlins that steal from the player during the hours of darkness.
About the book Go’s built-in support for testing puts tests front and centre of any software project, from command-line tools to sophisticated backend servers and APIs. This book introduces you to all Go’s testing facilities, shows you how to use them to write tests for the trickiest things, and distils the collected wisdom of the Go community on best practices for testing Go programs. Crammed with hundreds of code examples, the book uses real tests and real problems to show you exactly what to do, step by step.
“If you get fired as a result of applying the advice in this book, then that’s probably for the best, all things considered. But if it happens, I’ll make it my personal mission to get you a job with a better company: one where people are rewarded, not punished, for producing software that actually works.”
You’ll learn how to use tests to design programs that solve user problems, how to build reliable codebases on solid foundations, and how tests can help you tackle horrible, bug-riddled legacy codebases and make them a nicer place to live. From choosing informative, behaviour-focused names for your tests to clever, powerful techniques for managing test dependencies like databases and concurrent servers, The Power of Go: Tests has everything you need to master the art of testing in Go.
What you’ll learn: By reading through this book and completing the exercises, you'll learn:
How to build practical, reliable, and delightful Go programs, guided by tests All the latest facilities available in Go’s top-class testing libraries and tooling Standard techniques like table tests, parallel tests, deep comparisons, and golden files Randomised input generation and property-based testing Usability testing and exploratory testing Advanced techniques such as fuzzing and mutation testing, with detailed examples How to use tests to support and streamline bug fixing, refactoring, and maintaining legacy code Testing error handling, validation, sentinels, wrapped errors, and other sad-path behaviours Testing the untestable: user interaction, databases, CLIs, and HTTP servers How to test and refactor legacy systems with awkward dependencies Testing concurrent and asychronous APIs Why concurrency safety matters, and how to test for it Writing scripted tests for command-line tools using the testscript language How and when to use advanced techniques such as mocks, doubles, stubs, spies, fakes, and adapters Brittle, feeble, and flaky tests, how to avoid them, and how to fix them Time, and how to fake it for testing How to design useful, informative, and challenging test cases How tests can tell a story, and how to write that story in a clear, engaging, and readable way Building a quality-focused culture in your organisation and giving productive code reviews
And with the help of this book, you’ll learn how to build the most complex projects from scratch, using a simple, reliable, and stress-free workflow that delivers robust software fast. Tests are not the goal, I like to remind my students: the goal is programming with confidence.