Improve this Doc

ngMock

Installation

First include angular-mocks.js in your HTML:

<script src="angular.js">
<script src="angular-mocks.js">

You can download this file from the following places:

where X.Y.Z is the AngularJS version you are running.

Then load the module in your application by adding it as a dependent module:

angular.module('app', ['ngMock']);

With that you're ready to get started!

ngMock

The ngMock module provides support to inject and mock Angular services into unit tests. In addition, ngMock also extends various core ng services such that they can be inspected and controlled in a synchronous manner within test code.

Module Components

Object

Name Description
angular.mock

Namespace from 'angular-mocks.js' which contains testing related code.

Provider

Name Description
$exceptionHandlerProvider

Configures the mock implementation of $exceptionHandler to rethrow or to log errors passed to the $exceptionHandler.

Service

Name Description
$exceptionHandler

Mock implementation of $exceptionHandler that rethrows or logs errors passed to it. See $exceptionHandlerProvider for configuration information.

$log

Mock implementation of $log that gathers all logged messages in arrays (one array per logging level). These arrays are exposed as logs property of each of the level-specific log function, e.g. for level error the array is exposed as $log.error.logs.

$interval

Mock implementation of the $interval service.

$animate

Mock implementation of the $animate service. Exposes two additional methods for testing animations.

$httpBackend

Fake HTTP backend implementation suitable for unit testing applications that use the $http service.

$timeout

This service is just a simple decorator for $timeout service that adds a "flush" and "verifyNoPendingTasks" methods.

$controller

A decorator for $controller with additional bindings parameter, useful when testing controllers of directives that use bindToController.

$componentController

A service that can be used to create instances of component controllers.

Be aware that the controller will be instantiated and attached to the scope as specified in the component definition object. If you do not provide a $scope object in the locals param then the helper will create a new isolated scope as a child of $rootScope.

Type

Name Description
angular.mock.TzDate

NOTE: this is not an injectable instance, just a globally available mock class of Date.

$rootScope.Scope

Scope type decorated with helper methods useful for testing. These methods are automatically available on any Scope instance when ngMock module is loaded.

Function

Name Description
angular.mock.dump

NOTE: this is not an injectable instance, just a globally available function.

angular.mock.module

NOTE: This function is also published on window for easy access.
NOTE: This function is declared ONLY WHEN running tests with jasmine or mocha

angular.mock.module.sharedInjector

NOTE: This function is declared ONLY WHEN running tests with jasmine or mocha

angular.mock.inject

NOTE: This function is also published on window for easy access.
NOTE: This function is declared ONLY WHEN running tests with jasmine or mocha