Email the Author
You can use this page to email Danny Lamb about Testing AngularJS Cookbook.
About the Book
The Testing AngularJS Cookbook makes testing AngularJS applications as simple as looking up a recipe. It has been designed to get newcomers to the AngularJS tool setup to speed on testing their applications. Whereas experienced developers already familiar with concepts such as Test Driven Development (TDD), can find practical testing patterns they can use to increase unit test writing productivity and maintainability. Note that the recipes in this book do not cover AngularJS 2.0, as the API will most likely change between now and when it becomes available.
The number of websites using AngularJS is growing rapidly. There is no doubt that AngularJS is a rising star in the front-end web development community. The toolset provides a solid foundation for building ambitious web applications that are maintainable and scale. Over 100,000 websites use AngularJS today, and every single one has people tasked with making sure it functions correctly. This book gives designers, developers, and testers instant recipes that empower building robust applications they can fearlessly refactor.
Who This Book Is For
This book assumes a basic understanding of the AngularJS toolset and some familiarity with the Jasmine and Protractor testing frameworks. If you are unaccustomed to working with these tools, have no fear. The first chapter in this book provides a high-level overview of all that AngularJS has to offer, and the second chapter covers the available testing frameworks.
Pedagogy of This Book
The first chapter covers a high-level overview of AngularJS. Chapter two reviews the available testing frameworks. All test examples are written in Jasmine as it is currently the most prevalent test framework used with AngularJS. After these introduction chapters, I dig right into unit testing the components of your AngularJS application, and finally cover end-to-end testing in the final chapter of this book. Each of the testing chapters is self-contained and do not build on the previous chapter. The recipes within them are listed alphabetically to help you find the solution you are looking for as quickly as possible.
Table of Contents
- Chapter 1, AngularJS Essentials covers how the essentials of the AngularJS toolset, its guiding principles and its philosophy on structuring web applications.
- Chapter 2, Frameworks for Testing gives a quick review of the available unit test and end-to-end testing frameworks.
- Chapter 3, A/B/n Testing explains how you can optimize user experience with A/B/n tests.
- Chapter 4, Constant Testing explores how to test constants in AngularJS, and why they are an important tool for working with third-party libraries.
- Chapter 5, Controller Testing explains the best ways to unit test the business logic in your controllers.
- Chapter 6, Directive Testing shows how to unit test the behavior of your directives.
- Chapter 7, End-to-End Testing reveals how to create maintainable end-to-end tests that effectively validate page behavior from a user's point of view.
- Chapter 8, Factory Testing highlights how AngularJS factories differ from services and how they can be unit tested.
- Chapter 9, Filter Testing gives examples of unit testing filters.
- Chapter 10, Module Testing describes the role of modules within AngularJS and how to unit test them.
- Chapter 11, Performance Testing covers available tooling and how to use them to test the performance of your AngularJS application.
- Chapter 12, Service Testing discusses unit testing the singleton services in your application.
- Appendix A, Useful Tools highlights several useful open source projects and some recipes you can use when developing AngularJS applications with them.
About the Author
Daniel Lamb is a talented senior software development professional with an extensive 15 years experience specializing in large-scale front-end architecture and web development in a fast-paced agile environment across multiple teams for millions of users.
Follow him on GitHub and Twitter @daniellmb.