如何在指令的链接中对函数进行单元测试?我试过这样的事情,但没有奏效:
指令:
app.directive("hello", function(){
return {
link: function(scope){
scope.hello = function(){
return "hello";
};
}
};
});
单元测试:
describe("Hello directive", function(){
var compile, scope;
beforeEach(inject(function($compile, $rootScope){
scope = $rootScope.$new();
compile = $compile;
}));
it("should return hello", function(){
var element = compile("<hello></hello>")(scope);
expect(element.scope.hello()).toBe("hello");
});
});
答案 0 :(得分:2)
您错过了对module
的来电。
根据angular source for $compileProvider,指令限制外观就好(现在),默认为'EA'
。
注意:默认值是在angular-1.3.0(commit: 11f5ae,PR: 8321)中引入的,在该版本之前它只是
'A'
。在你的案例中,这可能是一个问题,看看你的问题是如何在2014年5月发布的。
我设置了一个小提示,通过两个更改来展示您的实现;
module
,以加载指令定义。1.3.0
。 <强> jsFiddle 强>
是的,我迟到了,但你的问题仍然是[angularjs] + [单元测试]中最难回答的问题之一。我想我可以改变它。