首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spyOn函数未按预期工作

spyOn函数未按预期工作
EN

Stack Overflow用户
提问于 2014-06-19 03:26:48
回答 1查看 119关注 0票数 0

我的控制器做了类似下面的事情:

代码语言:javascript
复制
.controller('demo',function($scope,$state, $modal,$q, Resource1, Resource2) {

  function1(){
     var deferred = $q.defer();
     Resource1.get(function(result){
         $scope.player = result;
         deferred.resolve(promise);
     });
     return deferred.promise;
  }  

  function2() { /* similar to function1. It also returns a promise */ }

   $q.all(function1(),function2(),function(result){

   });

});

我迫使自己sofar...beyond这我是一种迷失。首先,我想知道我的初始化是否正确,其次,我想知道如何编写单元测试来测试function1()是否被调用,以及Resource1在那之后是否被调用。这就是我到目前为止所知道的:

代码语言:javascript
复制
describe('demo',function(){


  beforeEach(function(){
      $rootScope = $injector.get('$rootScope');
      $controller = $injector.get('$controller');
      $httpBackend = $injector.get('$httpBackend');
      q = $injector.get('$q');
      state = $injector.get('$state');
   });

  createController = function(){
      return $controller('demo',{
        $scope: $rootScope.$new(),
        $state: state,
        $modal: sinon.stub({}),
        $q: q,
        Resource1: mockResource1, /*how and where to initialize mock Resources */
        Resource2: mockResource2, 

      });

    } //end beforeEach

   it('should check that func1 was called',function(){
          spyOn(this,'function1');
          var controller = createController();
          expect(this.function1).toHaveBeenCalled();
    });

   it('should check that Resource1.get as called',function(){
          //  how to formulate the test here 
    });

});
EN

回答 1

Stack Overflow用户

发布于 2015-04-18 00:38:16

我认为function1是一个存在于控制器作用域内的函数。你不能“触摸”它,所以你不能“监视”它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24293586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档