【发布时间】:2014-02-08 16:40:00
【问题描述】:
我想测试一个像这样声明的 AngularJS 指令
app.directive('myCustomer', function() {
return {
template: 'cust.html'
controller: 'customerController'
};
});
在测试中,我想注入(或覆盖)控制器,这样我就可以只测试指令的其他部分(例如模板)。 customerController 当然可以单独测试。这样我就可以清楚地分离测试。
- 我尝试通过在测试中设置控制器属性来覆盖控制器。
- 我尝试使用
$provide注入customController。 - 我已尝试在测试中使用的 html 指令声明上设置
ng-controller。
我无法让其中任何一个工作。问题似乎是在我拥有$compiled 之前我无法获得对该指令的引用。但是编译后,控制器已经设置好了。
var element = $compile("<my-customer></my-customer>")($rootScope);
【问题讨论】:
-
能否请您展示您的规范和您尝试过的代码?
标签: angularjs unit-testing dependency-injection controller directive