2013-09-05 2 views
1

Когда у меня есть Угловое директиву, которая использует контроллер я был в состоянии получить доступ сферы дИРЕКТИВЫ в моих тестах, делая это:тестирования Угловой директива рамка с JQuery загружена

element = angular.element('<my-directive></my-directive>'); 
element = $compile(element)($rootScope); 
$rootScope.$digest(); 

scope = element.scope(); 

Это позволяет мне установить/получить свойства области и функции прямого вызова, определенные контроллером директивы.

Однако, как только я представил jQuery проекту (требуется другой зависимостью, которую я хочу использовать), это перестало работать. В частности, в тесте element.scope() возвращается undefined. Используя инструменты dev, я вижу, что это не тот случай, когда приложение работает для реального - то есть я могу сделать $('.blah').scope() и вернуть значение не undefined.

У кого-нибудь появилась идея, почему это не сработает? Я добавил jQuery к моему karma.conf.js (я использую генератор Yeoman Angular) в том же порядке, что и в файле HTML.

ответ

1

Я нашел проблему. Я запускаю свои тесты в PhantomJS и занимаюсь jQuery 2.0.3. Переход к jQuery 1.10.2 заставил все работать снова. Я немного удивлен, что у PhantomJS будет проблема совместимости, но это, похоже, было проблемой.