2016-09-13 5 views
0

以下のコード例をご覧ください。角度分度器によってGULPタスクとして実行される分度器テストがあります。

ブロックするすべてのREST呼び出しをモックできるようにしたいが、ブロックするためにhttpBackendにアクセスすることもできます。

私はトラブルかかわらず約$ httpBackend変数を共有することだ:私はので、私は、実行関数内で午前範囲をthis.VARIABLE_NAMEを使用することはできません

  • を。

コード例

describe('Train Station Search Component', function() { 

    beforeEach(function() { 
     //Mock any REST calls here. 
     browser.addMockModule('httpBackendMock', function() { 
     angular.module('httpBackendMock', ['MyApp', 'ngMockE2E']) 
       .run(function($httpBackend) { 
        //Mock call relevant to both it blocks. 
        $httpBackend.whenPOST(/^(.*\/api\/search)/).respond({...}); 
       }); 
     }); 
    ); 

    it('should check one piece of functionality', function() { 
     //Expect call with data relevant only for this it block. 
     $httpBackend.expectPOST(...); 
    }); 

    it('should check another piece of functionality', function() { 
     //Expect call with data relevant only for this it block. 
     $httpBackend.expectPOST(...); 
    }); 

}; 

すべてのヘルプは大歓迎します。

答えて

0

$ httpBackEndサービスを挿入するのに$ injectorを使用できます。リンクhttps://docs.angularjs.org/api/ngMock/service/$httpBackend

+0

var $httpBackend beforeEach(inject(function($injector) { // Set up the mock http service responses $httpBackend = $injector.get('$httpBackend'); }); 

ゴー頼っていただきありがとうございます。 HTMLページにng-mock.jsがありますが、注入テストが実行されていないというエラーメッセージが表示されます。これはブラウザウィンドウ内のオブジェクトです。私はexecuteScriptを使ってこれを得ることができましたが、ちょっとハックしたようです。 –

関連する問題