Я тестирую директиву изоляции, которая является внутренним контроллером и значением области директивы, используемой в контроллере.Настройка тестового модуля для доступа к внутреннему контроллеру директивы
Это простой плункер http://plnkr.co/edit/r91xk1?p=preview от реального кода, который является директивной оболочкой для сетки, но это показывает проблему.
excepts из теста, который неудовлетворительный:
beforeEach(inject(function($rootScope, $controller, $compile) {
$compile = $compile;
$scope = $rootScope.$new();
//Here is the scope information defined, what we want to get into the directive
$scope.itemToTest = "-beforeTest filled in valueFromTest--"
// Here we declare that the "itemToTest" attribute is bound to the *value* of itemToTest
elm = angular.element('<primary-grid itemToTest="itemToTest" ></primary-grid>');
e = $compile(elm)($scope);
$scope.$digest();
console.log("in beforeEach $scope %o ", $scope.$id);
}));
it('should have filled in the value the grid', function() {
// Access the isolateScope using <ELEMENT>.isolateScope, to see what's happening inside
//This fails
console.log("in Test e.scope() %o ", e.scope());
console.log("in Test e.isolateScope() %o ", e.isolateScope().$id);
console.log("in Test e.isolateScope().itemToTest %o ", e.isolateScope().itemToTest);
console.log("in Test e %o ", e);
//This Test fails
expect(e.isolateScope().itemToTest).toEqual($scope.itemToTest);
})
...
Любых идей о том, что это лучший способ, чтобы установить правильное значение на директивах в тестах, так что контроллер может использовать его, и код может тестировать устройство?
благодаря