簡體   English   中英

angularjs單元測試-服務內部的模擬服務

[英]angularjs unit tests - mock service inside services

我正在測試服務A,但是服務A取決於服務B。(例如,服務B被注入到服務A中),服務B取決於服務C(例如,服務C被注入到服務B中)。

我已經在服務A中嘗試了模擬服務B

 describe('Testing ServiceA', function () {
    var serviceA, serviceBMock;           
        beforeEach(function () {                 
            serviceBMock= { 
                    get: function () {
                       return 'mockReturnValue';
                    }
            };
            angular.module('serviceAMocks', [])                  
                .value('ServiceB', serviceBMock);             

        });
         beforeEach(module('serviceAMocks'));
         beforeEach(inject(function (_ServiceA_){
            serviceA=_ServiceA_;
           });

        it('Gets', function () {  
        });
  }

我得到錯誤:

錯誤:[$ injector:unpr]未知提供程序:serviceC提供程序<-ServiceC <-ServiceB <-ServiceA

如果我刪除它阻止沒有錯誤,如果我將其阻止我得到服務C依賴錯誤。

任何幫助將不勝感激。

您可以使用如下代碼使Angular將模擬服務(服務B)注入服務A:

beforeEach(module(function($provide) {

    var serviceBMock= { 
        get: function () {
            return 'mockReturnValue';
        }
    };
    $provide.constant('serviceB', serviceBMock);
}));

暫無
暫無

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

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