在指令中对角度控制器功能进行单元测试

时间:2013-08-11 07:58:07

标签: angularjs angularjs-directive karma-runner

我在指令中定义了一个控制器,并且单元测试有问题。如果不将控制器与指令全局化或分离,这是否可行?你能添加一个简单的例子吗?

1 个答案:

答案 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中使用的以下技术的一个简单示例。