Unit testing is more than just a collection of tools and practices-it's a state of mind! This bestseller reveals the master's secrets for delivering robust, maintainable, and trustworthy code.
Thousands of developers have learned to hone their code quality under the tutelage of The Art of Unit Testing. This revised third edition updates an international bestseller to reflect modern development tools and practices, as well as to cover JavaScript.
Inside The Art of Unit Testing, Third Edition you will learn how to:
- Create readable, maintainable, and trustworthy tests
- Work with fakes, stubs, mock objects, and isolation frameworks
- Apply simple dependency injection techniques
- Refactor legacy code with confidence
- Test both frontend and backend code
Effective unit tests streamline your software development process and ensure you deliver consistent high-quality code every time. With practical examples in JavaScript and Node, this hands-on guide takes you from your very first unit tests all the way to comprehensive test suites, naming standards, and refactoring techniques. You'll explore test patterns and organization, working with legacy code and even "untestable" code. The many tool-agnostic examples are presented in JavaScript and carefully designed so that they apply to code written in any language.
About the technology
The art of unit testing is more than just learning the right collection of tools and practices. It's about understanding what makes great tests tick, finding the right strategy for each unique situation, and knowing what to do when the testing process gets messy. This book delivers insights and advice that will transform the way you test your software.
About the book
The Art of Unit Testing, Third Edition shows you how to create readable and maintainable tests. It goes well beyond basic test creation into organization-wide test strategies, troubleshooting, working with legacy code, and "merciless" refactoring. You'll love the practical examples and familiar scenarios that make testing come alive as you read. This third edition has been updated with techniques specific to object-oriented, functional, and modular coding styles. The examples use JavaScript.
What's inside
- Deciding on test types and strategies
- Test Entry & Exit Points
- Refactoring legacy code
- Fakes, stubs, mock objects, and isolation frameworks
- Object-Oriented, Functional, and Modular testing styles
About the reader
Examples use JavaScript, TypeScript, and Node.js.
About the author
Roy Osherove is an internationally-recognized expert in unit testing and agile software methodology. Vladimir Khorikov is the author of Manning's Unit Testing Principles, Practices, and Patterns, a Pluralsight author, and a Microsoft MVP.
Table of Contents
PART 1
1 The basics of unit testing
2 A first unit test
PART 2
3 Breaking dependencies with stubs
4 Interaction testing using mock objects
5 Isolation frameworks
6 Unit testing asynchronous code
PART 3
7 Trustworthy tests
8 Maintainability
PART 4
9 Readability
10 Developing a testing strategy
11 Integrating unit testing into the organization
12 Working with legacy code
Appendix Monkey-patching functions and modules