2017-02-19 10 views
0

私たちにはapiを呼び出すサービスがあり、このサービスを使用してコントローラ内のロジックを実行するものとします。 何が良いですか?Jasmine JSON fixtures 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 )。

これにより、テストが赤色になったときに、どのユニットが故障したかを明白に判断することができます。