2015-07-14 2 views
5

Я пытаюсь проверить директиву, как описано, например, здесь http://angular-tips.com/blog/2014/06/introduction-to-unit-test-directives/.Устойчивая угловая директива Jasmine с зависимостью [^ form]

Однако в моей директиве я использую форму, так что у меня есть это в моей директиве объявлении объекта:

 return { 
      link: link, 
      restrict: 'E', 
      require: ['^form'], // <- I have this !! 
      scope: { //... 
      }, 
      controller: function ($scope) { 
      //... 
      } 
     }; 

как таковой, когда я исполняю обычную предпосылку для моего теста Жасмин

element = '<mydirective/>'; 
element = $compile(element)(scope); 

У меня возникает следующая проблема зависимости при попытке запустить тест на карма/жасмин:

Ошибка: [$ compile: ctreq] Контрольная «форма», требуется d по директиве 'mydirective', не может быть найден! http://errors.angularjs.org/1.4.2/ $ компилировать/ctreq? P0 = & формы p1 = mydirective

Как это можно исправить?

+0

Используйте ''

''и используйте' element.find (' mydirective ') 'для поиска фактического элемента директивы. –

+0

@JBNizet спасибо! вы можете сделать его реальным. Я думаю, этот бит стоит запомнить –

ответ

5

Использование

'<form><mydirective></mydirective></form>' 

и использовать element.find('mydirective') найти фактическую директиву элемента.

Смежные вопросы