具有[^ form]依赖关系的Jasmine Testing角度指令

Ask*_*mov 5 jasmine angularjs angularjs-directive karma-jasmine

我正在尝试测试一个指令,例如 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) {
            //...
            }
        };
Run Code Online (Sandbox Code Playgroud)

因此,当我执行我的Jasmine测试的通常先决条件时

element = '<mydirective/>';
element = $compile(element)(scope);
Run Code Online (Sandbox Code Playgroud)

我试图运行karma/Jasmine测试时遇到依赖问题:

错误:[$ compile:ctreq] 无法找到指令' mydirective '所需的控制器'表单'!http://errors.angularjs.org/1.4.2/ $ compile/ctreq?p0 = form&p1 = mydirective

如何解决这个问题?

JB *_*zet 6

使用

'<form><mydirective></mydirective></form>'
Run Code Online (Sandbox Code Playgroud)

,并用于element.find('mydirective')查找实际的指令元素.