2016-06-28 16 views
0

分派器テストからSSE(サーバ送信イベント)をモックする方法は遠隔にありますか? EventSource分度器:イベントソースを嘲笑

角度コントローラをからかっ意味

angular.module('app').controller('HomeController', function() { 

    var monitoringEvents = new window.EventSource('/streams/jobserveur'); 

    monitoringEvents.addEventListener('monitoring-event', function(e) { 
    var json = JSON.parse(e.data);  
    ... 
    }); 
}); 

は私がmentionned溶液(角度モジュール/分度器addMockModule)によってEventSourceを模擬するために管理任意の洞察力

+2

誰もがあなたがそのモックが必要とされるであろういくつかのコードを表示することができますホープ? (またはあなたが試したが動作しなかったコード) – acdcjunior

+0

EventSourceが参照されるコントローラコードを追加しました。 私はこの事をどうやって模倣できるかについて、私は全く知らなかった。たぶん私は 'EventSource'をAngularモジュールにカプセル化し、テストで' AddMockModule'を使うことができます... – nastyklad

答えて

0

いただきありがとうございます。アプリ

angular.module('app', ['app.sse', ...]) 
  • 使用アプリで$sseモジュールにモジュールを参照

    1. 外部化専用の角度モジュールにEventSourceコール

      angular.module('app.sse', []) 
      .value('$sse', { 
          sources : [], 
          addEventSource : function(name, url) { 
          this.sources[name] = new window.EventSource(url); 
          }, 
          addEventListener : function(name, eventName, callback) { 
          this.sources[name].addEventListener(eventName, callback); 
          } 
      }); 
      
    2. angular.module('app').controller('HomeController', ['$sse' , function($sse) { 
          $sse.addEventSource('jobserveur', '/streams/jobserveur'); 
      
          $sse.addEventListener('jobserveur', 'monitoring-event', function(e) { 
          var js = JSON.parse(e.data); 
          } 
      }]); 
      
      ここから

      、あなたのアプリがまだあなたのテスト

      describe('SSE Fixture', function() { 
          beforeEach(function() { 
          browser.addMockModule('app.sse', function() { 
           angular.module('app.sse', []).value('$sse', { 
           addEventSource: function(name, url) { 
      
           }, 
           addEventListener: function(name, event, callback) { 
      
           } 
           }); 
          }); 
      } 
      

      にテスト

    3. モックapp.sseモジュール上に移動する前に動作していることを確認し、完了です!当然のことながら、2つの方法はここでは実装されておらず、いずれにしてもapp.sseモジュールが堅牢ですが、あなたはその写真を手に入れます。

    は、それが

    乾杯