Video description
In Video Editions the narrator reads the book while the content, figures, code listings, diagrams, and text appear on the screen. Like an audiobook that you can also watch as a video.
This book is an indispensable resource.
Greg Wright, Kainos Software Ltd.
Unit Testing Principles, Patterns and Practices shows you how to refine your existing unit tests by implementing modern best practices. You’ll learn to spot which tests are performing, which need refactoring, and which need to be deleted entirely! Upgrade your testing suite with new testing styles, good patterns, and reliable automated testing.
about the technology
Great testing practices will help maximize your project quality and delivery speed. Wrong tests will break your code, multiply bugs, and increase time and costs. You owe it to yourself—and your projects—to learn how to do excellent unit testing to increase your productivity and the end-to-end quality of your software.
about the book
Unit Testing Principles, Patterns and Practices teaches you to design and write tests that target the domain model and other key areas of your code base. In this clearly written guide, you learn to develop professional-quality test suites, safely automate your testing process, and integrate testing throughout the application life cycle. As you adopt a testing mindset, you’ll be amazed at how better tests cause you to write better code.
what's inside
- Universal guidelines to assess any unit test
- Testing to identify and avoid anti-patterns
- Refactoring tests along with the production code
- Using integration tests to verify the whole system
about the audience
For developers who know the basics of unit testing. The C# examples apply to any language.
about the author
Vladimir Khorikov is an author, blogger, and Microsoft MVP. He has mentored numerous teams on the ins and outs of unit testing.
Serves as a valuable and humbling encouragement to double down and test well, something we need no matter how experienced we may be.
Mark Nenadov, BorderConnect
I wish I had this book twenty years ago when I was starting my career in software development.
Conor Redmond, Incomm Product Control
This is the kind of book on unit testing I have been waiting on for a long time.
Jeremy Lange, G2
NARRATED BY NATE COLITTO
Table of Contents
Part 1 The bigger picture
Chapter 1 The goal of unit testing
Chapter 1 The goal of unit testing!
Chapter 1 Using coverage metrics to measure test suite quality
Chapter 1 Problems with coverage metrics
Chapter 1 What makes a successful test suite?
Chapter 2 What is a unit test?
Chapter 2 The isolation issue: The classical take
Chapter 2 The classical and London schools of unit testing
Chapter 2 Contrasting the classical and London schools of unit testing
Chapter 2 Integration tests in the two schools
Chapter 3 The anatomy of a unit test
Chapter 3 How large should each section be?
Chapter 3 Exploring the xUnit testing framework
Chapter 3 Naming a unit test
Chapter 3 Refactoring to parameterized tests
Part 2 Making your tests work for you
Chapter 4 The four pillars of a good unit test
Chapter 4 What causes false positives?
Chapter 4 The intrinsic connection between the first two attributes
Chapter 4 In search of an ideal test
Chapter 4 Extreme case #3: Brittle tests
Chapter 4 Exploring well-known test automation concepts
Chapter 5 Mocks and test fragility
Chapter 5 Observable behavior vs. implementation details
Chapter 5 The relationship between mocks and test fragility
Chapter 5 The classical vs. London schools of unit testing, revisited
Chapter 6 Styles of unit testing
Chapter 6 Comparing the three styles of unit testing
Chapter 6 Understanding functional architecture
Chapter 6 Transitioning to functional architecture and output-based testing
Chapter 6 Understanding the drawbacks of functional architecture
Chapter 7 Refactoring toward valuable unit tests
Chapter 7 Refactoring toward valuable unit tests!
Chapter 7 Take 3: Removing complexity from the application service
Chapter 7 Analysis of optimal unit test coverage
Chapter 7 Using the CanExecute/Execute pattern
Chapter 7 Conclusion
Part 3 Integration testing
Chapter 8 Why integration testing?
Chapter 8 Which out-of-process dependencies to test directly
Chapter 8 Integration testing: An example
Chapter 8 Using interfaces to abstract dependencies
Chapter 8 Integration testing best practices
Chapter 8 How to test logging functionality
Chapter 8 Conclusion
Chapter 9 Mocking best practices
Chapter 9 Mocking best practices!
Chapter 10 Testing the database
Chapter 10 Database transaction management
Chapter 10 Test data life cycle
Chapter 10 Common database testing questions
Part 4 Unit testing anti-patterns
Chapter 11 Unit testing anti-patterns
Chapter 11 Exposing private state
Chapter 11 Mocking concrete classes