Карма компиляции Угловая директива в тесте

Привет, я пытаюсь скомпилировать угловую директиву в рамках теста Karma:

describe("Midway: Testing My App", function() {
 var $compile, $rootScope;
 beforeEach(module('KSSApp'));
 beforeEach(inject(
 ['$compile','$rootScope', function($c, $r) {
 $compile = $c;
 $rootScope = $r;
 }]
 ));

 it("should compile the widget", function() {
 var element = $c('')($r);
 console.log(element);
 });

});

Это, однако, добавляет класс элемента ng-scope к элементу и не компилирует полную директиву.

1 ответ

Возможно, вам понадобится запустить цикл дайджеста, плюс я думаю, что у вас есть инвертированные введенные и тестируемые переменные ($scompile и $rootScope):

describe("Midway: Testing My App", function() {
 var $compile, $rootScope;
 beforeEach(module('KSSApp'));
 beforeEach(inject(
 ['$compile','$rootScope', function($c, $r) {
 $compile = $c;
 $rootScope = $r;
 }]
 ));

 it("should compile the widget", function() {
 // You're out of the inject function so I used full variable names
 var element = $compile('')($rootScope);

 // run a digest loop
 $rootScope.$digest();
 console.log(element);
 });

});

licensed under cc by-sa 3.0 with attribution.