angular - 如何使用IsolatedScope加载测试指令?

时间:2015-07-05 03:54:17

标签: angularjs

我有一个具有独立范围的指令,在创建时会执行以下操作

if ( $routeParams.flag === 'true' ){
    $scope.callSomeFunction();
} 

我该如何测试发生的情况?

理想情况下,我想要一种窥探callSomeFunction的方法 - 但由于这是一个孤立的范围,我不能。

是否有机制来覆盖孤立范围的生成?

我可以添加我的代码

if ( !scope.callSomeFunction ) { 
    scope.callSomeFunction = ... 
} 

当我定义函数时,如果机制需要它。

目前我们正在试图窥探$rootScope.$new,但不确定这是否是解决问题的最佳方法。

这是整个链接函数($routeParams是注入指令):

function( scope ) {
       scope.openDialog = function(){ .... }
       if ( $routeParams.flag ){
           scope.openDialog();
       }
}

这是一个带有我的指令代码的plunker。

http://plnkr.co/edit/7iK2WeXkpCsfOV0eIGfl?p=preview

我们的想法是编写一个测试,检查是否给定$routeParams.flag === X,然后调用范围function Y

我想

  • spyOn方法Y不知何故 - 这就是问题所在。我没有任何机会这样做,除非我覆盖丑陋的新的
  • mock $ routeParams
  • 期待spy isCalled

0 个答案:

没有答案