2016-08-12 3 views
0

私はunitTestsをいくつかやっています。私のシナリオは以下の通りです。私はサービス関数への呼び出しが同じでなければならない50のテストがありますが、1回のテストでは元のメソッドを呼び出すことができれば非常に役立ちます。私はand.callThroughで試しましたが、正しく動作していません。私はスパイを無効にしようとしていますが、私はできません。私は間違っているの?CallThrough注入スパイ

beforeEach(inject(function($controller, _myService_){ 
    spyOn(_myService_, 'getSomeData').and.callFake(function(data, params){ 
     return dummyData; 
    }); 

    createController = function() { 
    return $controller('MyCtrl',{ 
     $uibModalInstance: modalInstance, 
     myService: _myService_, 
     injectedData: injectedData 
    }); 
    }; 
})); 

これは私のテストケースです。

it('My test case', function(){ 
    controller = createController(); 
    controller.myService.getSomeData = jasmine.createSpy().and.callThrough() 
}); 

私はjasmine 2.0を使用しており、そのテストケースではcallFake関数が継続的に呼び出されています。

おかげ

答えて

1

jasmine.createSpy().and.callThrough()はスパイ法を認識しないと、それはそれだけでNOOP関数を呼び出し、その結果呼び出し、それについて知ることができますどのように方法はありません。

戦略は、既存のスパイのために変更することができます

スパイ、

controller.myService.getSomeData.and.callThrough(); 
+0

は私の問題を解決していただきありがとうございます:) – acostela