我试图测试一个指令,正如所解释的那样.这里
http://angular-tips.com/blog/2014/06/introduction-to-unit-test-directives/.
但是,在我的指令中我使用form,所以我在我的指令声明对象中有这个:
return { link: link,restrict: 'E',require: ['^form'],// <- I have this !! scope: { //... },controller: function ($scope) { //... } };
因此,当我执行我的Jasmine测试的通常先决条件时
element = '<mydirective/>'; element = $compile(element)(scope);
我试图运行karma / Jasmine测试时遇到依赖问题:
错误:[$compile:ctreq]无法找到指令’mydirective’所需的控制器’表单’!
http://errors.angularjs.org/1.4.2/ $编译/ ctreq P0 =形式&安培; P1 = mydirective
如何解决这个问题?
解决方法
使用
'<form><mydirective></mydirective></form>'
,并使用element.find(‘mydirective’)来查找实际的指令元素.