Teste de unidade de uma diretiva AngularJS personalizada

Problema

Você precisa escrever uma especificação de teste de unidade (Jasmine) para testar uma diretiva AngularJS personalizada.

Solução

Escreva um fixture compreendendo a tag de diretiva, injete a lógica de diretiva personalizada e teste-a.

// Simple AngularJS directive
var directives = angular.module('myNameSpace.directives', []);

directives
.directive('directive', function() {
var directive = {};

directive
.restrict = 'E'; // Indicates an element directive.
directive
.template = 'Hello World';

return directive;
});

// Test
describe
('myNameSpace.directives', function() {
var element, scope;

beforeEach
(module('myNameSpace.directives'));

beforeEach
(inject(function($rootScope, $compile) {
element
= angular.element(
'<directive>Old text</directive>'
);

scope
= $rootScope.$new();
$compile
(element)(scope);
scope
.$digest();
}));

it
('should display the text properly', function() {
expect
(element.html()).toBe('Hello World');
});
});