Learn to write better automated tests that will dramatically increase your productivity and have fun while doing so. This book is a build-your-own adventure designed for individual reading and for collaborative workshops. You will build an xUnit automated test framework using JavaScript: initially a clone of Jest, but adding a couple of neat features borrowed from RSpec, the genre-defining tool for behavior-driven development (BDD). Along the way, you will explore the philosophy behind automated testing best practices. The automated test runner is one of the most important innovations within software engineering. But for many programmers, automated testing remains a mystery, and knowing how to write good tests is akin to sorcery.As the chapters of this book unfold, you will see how the humble test runner is an elegant and simple piece of software. Each chapter picks a single feature to build, like the "it" function or the "beforeEach" block. It picks apart the theory of why the feature needs to exist, and how to use it effectively in your own test suites. Every chapter ends with a set of ideas for extension points should you wish to explore further, alone or in groups. The book culminates in an implementation of test doubles and mocks—one of the most difficult and misunderstood concepts within automated testing.By the end of the book, you will have gained a solid understanding of automated testing principles that you can immediately apply to your work projects. What You'll LearnBuild an xUnit automated test frameworkSee how an automated test runner worksUnderstand the best practices for automated unit testingEffectively use test doubles and mocksWho This Book Is ForSoftware developers with JavaScript experience who are seeking to master the art of automated testing.