Chapter 3. Unit Testing in AngularJS

In Chapter 2, we looked at starting a very basic AngularJS application. We saw some commonly used AngularJS directives, and then looked at using controllers to add behavior and functionality to our application.

JavaScript does not have all the niceties of a strongly typed language like type safety and a compiler. That puts the onus on us developers to ensure that what we write actually works as intended, and continues to run as intended well into the future. Unit tests provide a way to write expectations about how code should behave, and running them in an automated way ensures that behaviors don’t change unexpectedly.

Because AngularJS and testing are so well integrated, we introduce a small chapter on testing after each major concept to show how each concept can be unit tested independently, and in isolation. We also dive into Karma, the unit test runner for AngularJS, and Jasmine, the test framework. Finally, we bring all these pieces together to write our first AngularJS unit test.

Unit Testing: What and Why?

Unit testing is the concept of taking a single function or part of our code, and writing assertions and tests to ensure that it works as intended. While very common on the server side, we often find the habit of writing unit tests amiss when developing client-side applications. Here are five reasons why we should write unit tests when working on a JavaScript-based client-side application:

Proof of correctness
Without unit tests, there is ...

Get AngularJS: Up and Running now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.