2017-06-05 17 views
1

私のangularJSアプリケーションは、イベントスチームを使用しており、httpイベントスチームリクエストとリスニングサーバーイベントを開いたままにしています。だから私の問題は、分裂器が私のangularJSアプリケーションのテストを開始するときです。私はignoreSynchronization = falseを使用しているので、イベントストリーム要求を完了するのを待っているので、分裂器はイベントストリームのHTTP要求が決して終わらないようにタイムアウトするまで待機します。だから私は私の分度器にそのようなイベントストリーム$ httpタスクを無視し、私のアプリケーションのテストを進めるように教えたいと思う。 これらのイベントストリームはアプリケーション全体で実装されているので、イベントストリーム要求があるたびに分裂器がタイムアウトします。分度器に特定の非同期角度タスクを無視する方法を教えてください。

タイムアウトが発生すると、次のエラーが発生します。 失敗:300秒後に非同期の角型タスクが終了するのを待ってタイムアウトしました。これは、現在のページがAngularアプリケーションではないためです。詳細はhttps://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angularのFAQをご覧ください。 次のタスクが保留された: - $のhttp:https://example.com/custom/xxx/sse

は、誰もがこの問題を取り除くために私を助けてくださいことはできますか?

答えて

0

おかげで貴重な応答を@quirimmoに役立ちます願っています。

HTTP要求を変更してタイムアウトをhttp要求に変更するだけで、嘲笑されたバックエンド呼び出しを使用せずにタイムアウトの問題を達成することができます。これにより、リクエストが時間切れになるまで待機します(タイムアウトにより、さらなる声明。

2

分度器にモックを追加できます。 実際にあなたができることは、モックモジュールを少し追加して、必要なものを模擬することです。

問題が非同期要求タイミングのタイムアウトに関連しているだけの場合は、そのタイムアウト値をprotractor.config.jsから変更することもできます。

ところで、モックに戻って、browser.addMockModuleメソッドでモックを定義し、分度器に追加します。ここで

分度器でモックについての良い記事:

https://github.com/atecarlos/protractor-http-mock

このことができます:

http://eitanp461.blogspot.ie/2014/01/advanced-protractor-features.html

そして、ここで良いNPMモジュールあなたがangularjs $ HTTPリクエストをからかっ容易にするために上記のノードモジュールを使用せずにモックモジュールの少しの例です:

browser.addMockModule('httpMocker', function() { 
    angular.module('httpMocker', ['ngMockE2E']) 
    .run(function($httpBackend) { 
    $httpBackend.whenGET('MYURL') 
    .respond("MOCKED RESPONSE!"); 
    }) 
}) 

テスト内でモックを直接定義することもできますが、テストでグローバルに使用する場合は、protractor.config.jsonPrepareメソッド内にモックを直接定義することをおすすめします。

私はそれが

関連する問題