2016-04-22 10 views
0

ジャスミンテストと角度フレームワークはかなり新しいです。私は現在、私のジャスミンテストから私のサービス機能を参照することができない独特の状況があります。ジャスミンテストで角度サービス機能にアクセスすることはできません

私の角度サービス初期化の一部:私のカルマのテストで今

var service = { 
checkIfCurrentIsObject: checkIfCurrentIsObject, 
removeFromCurrentObject: removeFromCurrentObject; 
} 

function checkIfCurrentIsObject() { 
      return getCurrent().isObject(); 
     } 

function removeFromCurrentIsObject() { 
     checkIfCurrentIsObject(); 
      return specialFunction(); 
     } 

describe('when current object is property', function() { 

      it('verify the requote function is called', function() { 
      spyOn(Service, 'checkIfCurrentIsObject').and.returnValue(true); 
      spyOn(Service, 'removeFromCurrentIsObject').and.callThrough(); 
      spyOn(Service, 'specialFunction'); 
      expect(Service, 'specialFunction').toHaveBeenCalled(); 

        }); 

は、今、私が直面してる問題は、私のspyOnである私のcheckIfCurrentIsObject関数にピックアップしていません私がremoveFromCurrentIsObjectの機能でthis.checkIfCurrentIsObjectと指定していない限り。これには特別な理由はありますか?

答えて

0

はい、それはそれらをスパイするために

function removeFromCurrentIsObject() { 
    this.checkIfCurrentIsObject(); 
    return this.specialFunction(); 
} 

でなければなりません。

これは、スパイされている方法です。Service.checkIfCurrentIsObjectです。 JavaScriptでは、checkIfCurrentIsObject()ローカル関数呼び出しをトレースする方法はありません。

関連する問題