4

我在指令中定义了一个控制器,并且在对其进行单元测试时遇到了麻烦。如果不将控制器与指令全球化或分离,这是否可能?你能添加一个简单的例子吗?

4

1 回答 1

3

在您的情况下,您可以通过从已编译的元素范围访问控制器函数来测试元素控制器。

访问元素范围的最简单方法是在编译的角度元素上调用#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中使用的以下技术的简单示例。

于 2013-08-11T10:21:32.703 回答