2017-02-19 65 views
0

假設我們有一個服務調用api,我們使用這個服務在控制器中做一些邏輯。 有什麼更好的使用?Jasmine JSON燈具VS服務嘲笑

user = $injector.get('userSrv'); 
var myFixture = angular.fromJson(window.__html__['mydata.json']); 
$httpBackend.whenGET('url/').respond(myFixture); 
user.getGender(); 

或者只是使用

beforeEach(module(function($provide) { 
    $provide.service('userSrv', function(){ 
     return { 
      getGender: function(){ 
       return 'something'; 
      } 
     } 
    }); 
}) 

回答

0

兩個應該使用,但在不同的測試。

在控制器規範中,服務應該被模擬,因爲被測試的單元是一個控制器。

在服務規範中,http請求應該被嘲弄,因爲被測試的單元是一個服務(這允許保持測試同步和獨立於後端,不可能用ngMock以任何方式執行真正的請求)。

這允許在測試變紅時明確地確定哪個單元失敗。