2013-02-19 30 views
9

Tôi thực sự đang tìm cách đơn giản nhất để ứng dụng góc của tôi sử dụng dịch vụ phụ trợ giả.

mọi con trỏ sẽ tuyệt vời, một ứng dụng mẫu hiển thị cách viết một ứng dụng đơn giản, việc sử dụng nó sẽ thực hiện công việc. tnx!

Trả lời

11

Dưới đây là một sample plunkr sử dụng $ httpBackend cho mẫu có phát triển phụ trợ ít hơn làm ví dụ để trả lời this question.

Những điều chính tôi thêm vào plnkr để có được điều này để làm việc là:

  1. Tham chiếu tập tin angular-mocks.js trong html.
  2. Added ngMockE2E trong angular.module đòi hỏi mảng trên dòng 3 trong app.js
  3. Tiêm $httpBackend đến app.run và thêm mã để nói với backend giả những gì để đáp ứng với khi một GET đến một URL cụ thể được yêu cầu .

Điều này chủ yếu được lấy từ tài liệu $httpBackend. Lưu ý rằng bạn có thể thực hiện .passThrough() cho bất kỳ cuộc gọi nào mà bạn muốn thực sự nhấn vào chương trình phụ trợ (bỏ qua mô phỏng). Điều này đặc biệt hữu ích nếu các phần của backend đã hoạt động.

+0

'.passThrough()' sẽ được cũng rất hữu ích để tải mẫu khác '$ httpBackend' can thiệp vào cơ chế mẫu bốc bình thường. Ví dụ: đề cập đến, '$ httpBackend.whenGET (/ \. Html $ /). PassThrough();' –

2

Đây là một mẫu cơ bản kéo từ các ví dụ khác nhau:

'use strict'; 

(function() { 

    if(!document.URL.match(/\?nobackend$/)){ 
     // if not requested only add a blank stub to app dependency. 
     angular.module('ds.backendMock', []); 

    } else if (document.URL.match(/\?nobackend$/)) { 

     // if the query string is present add a module with a run definition to replace the back end. 
     angular.module('myMock', ['ngMockE2E']) 

      .run(function($httpBackend) { 

       // MOCK-RUNNER-CONFIGURATION-. 
       var DOMAIN = 'example.com', 
     $httpBackend.whenGET('http://'+DOMAIN+'/someexample') 
        .respond(
         //MOCK-ERROR-STATUS-CODE 
         //401 //500 //404 //uncomment integer to mock status code and comment out mock data. 
         //MOCK-DATA-RESPONSE 
         { 
          'id' : '1', 
          'name' : 'MOCK', 
          'description' : 'mocking', 

         } 
        ); //end mock. 


        // various passthroughs. these allow existing services to work, while some are mocked. 
        $httpBackend.whenGET('./some.html').passThrough(); 

        // dont mock everything else, specify pass through to avoid error. 
        $httpBackend.whenGET(/^\w+.*/).passThrough(); 
        $httpBackend.whenPOST(/^\w+.*/).passThrough(); 

       }); 

     } 

})(angular); 
Các vấn đề liên quan