我在指令中定义了一个控制器,并且单元测试有问题。如果不将控制器与指令全局化或分离,这是否可行?你能添加一个简单的例子吗?
答案 0 :(得分:3)
在您的情况下,您可以通过从已编译的元素范围访问控制器函数来测试元素控制器。
访问元素范围的最简单方法是在编译的angular element上调用 #scope()函数。
it ('should have a function X on scope', inject(function($rootScope, $compile) {
var element = $compile('<div test-directive></div>')($rootScope);
expect(element.scope().myFunction).toEqual(jasmine.any(Function));
});
下面是jsFiddle中使用的以下技术的一个简单示例。