2017-06-19 3 views
1

beforeEachではなくjasmineのbeforeAllを使用しますが、angular.mock.moduleとangular.mock.inject関数はbeforeAllでは機能しません前にそれぞれ働いています。angular.mock.moduleとangular.mock.inject関数がjasmineのbeforeAllで機能しない

ここは私のテストです。 前のアプローチで同じコードが動作しています。

describe("This is a test", function() { 
    beforeAll(module("app")); 

    var vm; 
    beforeAll(function() { 
     angular.mock.module(function ($provide) { 
      $provide.factory("dataService", ["$q", function ($q) { 
       return { 
        getSomeDataById: function() { return $q.resolve({ }); } 
       }; 
      }]); 
     }); 

     angular.mock.inject(function (_$controller_,dataService) { 
      vm = _$controller_("TestController", 
      { 
       dataService: dataService 
      }); 
     }); 
    }); 
}); 

答えて

0

私は同様の問題に直面し、私のためにそれを解決しmodule.sharedInjector()コールを使用していました:

describe("This is a test", function() { 

    // Call SharedInjector before any call that might invoke the injector 
    angular.mock.module.sharedInjector(); 

    beforeAll(module("app")); 

    var vm; 
    beforeAll(function() { 
     angular.mock.module(function ($provide) { 
      $provide.factory("dataService", ["$q", function ($q) { 
       return { 
        getSomeDataById: function() { return $q.resolve({ }); } 
       }; 
      }]); 
     }); 

     angular.mock.inject(function (_$controller_,dataService) { 
      vm = _$controller_("TestController", 
      { 
       dataService: dataService 
      }); 
     }); 
    }); 
}); 
関連する問題