簡體   English   中英

將服務注入角度控制器單元測試

[英]Injecting a service into angular controller unit test

我正在嘗試將服務注入到我的控制器單元測試中。 我並不是想對服務進行模擬,而只是將其包括在內,以便我可以訪問其所有方法。 這可能嗎?

'use strict';

  describe('Offers : controller', function(){

    beforeEach(module('client'));

      var $scope,
          controller,
          $rootScope,
          genericService;


      beforeEach(inject(function($injector, $controller) {

        $rootScope = $injector.get('$rootScope');
        controller = $controller('OffersCtrl', { $scope: $scope });
        genericService = $injector.get('genericService');
        $scope = $rootScope.$new();

   }));

   it('should have a genericService', function () {
     expect(genericService.method).toBeDefined();
   });


});

只需以與角度服務相同的方式注入自己的服務即可:

var genericService;

beforeEach(inject(function(_genericService_) {
  genericService = _genericService_;
});

請注意,您可以在參數名稱周圍使用下划線 ,以避免命名沖突。 解決注入服務時,Angular將從參數名稱中刪除這些參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM