2016-05-14 13 views
8

私は自分のアプリケーションの機能テストを書いて、私はloginServiceサービスを模擬してテストをスピードアップしたいと思っています。私は$ httpを嘲笑したくありませんが、内部的に呼び出すサービスですが、サーバーにHTTPクエリを送信するloginService.validate関数にスパイを置くことはできませんが、ロードされていません。ドライバーにはありますが、テスト自体ではありません。 addMockModuleも見ましたが、使い方を理解できません。私がしたいことをする簡単な方法はありますか?私はこれらを見て、彼らは助けにはならなかった。分度器のE2Eテストでサービスをモック

Mocking and Stubbing with protractor

Mocking an angular service in Protractor

+0

https://github.com/kbaltrinic/http-backend-proxy/wiki – rfodge

答えて

5

はこれを試してみてください。

describe('MockingHttp', function() { 
    beforeEach(function() { 
    browser.addMockModule('httpMocker', function() { 
     angular.module('httpMocker', ['ngMockE2E']) 
     .run(function($httpBackend) { 
     $httpBackend.whenGET(
      'http://jsonplaceholder.typicode.com/photos') 
      .respond([ 
      { 
      albumId: 1, 
      id: 1, 
      title: "accusamus beatae ad", 
      url: "http://placehold.it/600/92c952", 
      thumbnailUrl: "http://placekitten.com/g/200/300" 
      } 
      ]) 

     }) 
    }) 
    }); 

詳細は、thisを参照してください。 :)

+0

もう1つの便利な例( '$ httpBackend'も' ngMockE2E'も使用しませんが、単純に望みますサービスをテストに必要な動作に「置き換える」)[ここに表示](https://github.com/angular/protractor/issues/667) –

関連する問題