2016-05-14 7 views
8

में ई 2 ई परीक्षण में एक सेवा मॉक करें, मैं अपने ऐप के लिए एक कार्यात्मक परीक्षण लिखना चाहता हूं, और मैं परीक्षणों को तेज़ करने के लिए अपनी लॉगिन सेवा सेवा का नकल करना चाहता हूं। मैं $ http का नकल नहीं करना चाहता, लेकिन वह सेवा जो आंतरिक रूप से इसे कॉल करती है, लेकिन मैं फ़ंक्शन loginService.validate पर एक जासूसी नहीं डाल सकता, जो सर्वर पर HTTP क्वेरी भेजता है, लेकिन यह लोड नहीं होता है, क्योंकि यह चालक में है, टेस्ट में नहीं। मैंने addMockModule पर एक नज़र डाली लेकिन मुझे समझ में नहीं आया कि इसका उपयोग कैसे किया जाए। क्या मैं चाहता हूं कि ऐसा करने का कोई आसान तरीका है? मैं इन को देखा, पर वे मदद नहीं की:प्रोटोकैक्टर

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

एक और उपयोगी उदाहरण (जो '$ httpBackend' का उपयोग नहीं करता है, न ही' ngMockE2E', लेकिन बस चाहता है परीक्षण के लिए आवश्यक व्यवहार के साथ एक सेवा को "प्रतिस्थापित" करने के लिए) [यहां दिखाया गया है] (https://github.com/angular/protractor/issues/667) –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^