2015-10-04 57 views
5

我試圖做一個虛擬服務來獲得的角度數據,我使用ngMockE2E功能,並且我對模擬代碼如下所示:

(function() { 
    "use strict" 
    var app = angular 
     .module("productResourceMock", ["ngMockE2E"]); 

    app.run(function ($httpBackend) { 
     var products = [ 
      { 
       "productId": 1, 
       "productName": "mobile1", 
       "productCode": "heh4", 
       "releaseDate": "May 21, 2013", 
       "description": "very nice mobile", 
       "cost": 200, 
       "price": 300, 
       "category": "Electronics", 
       "tags": ["mobile", "electronic"], 
       "imageUrl": "images/img1.jpg" 
      }, 
      { 
       "productId": 2, 
       "productName": "mobile2", 
       "productCode": "heh4", 
       "releaseDate": "May 21, 2012", 
       "description": "not a nice mobile", 
       "cost": 100, 
       "price": 500, 
       "category": "Electronics", 
       "tags": ["mobile", "Electronic"], 
       "imageUrl": "images/img2.jpg" 
      }]; 

     var productUrl = "/api/products"; 
     $httpBackend.whenGet(productUrl).respond(products); 
    }); 

}()); 

我已經定義了我的控制器,和它裏面,它有這個代碼:

(function() { 
    "use strict" 
    angular 
     .module("productManagement") 
     .controller("ProductListCtrl", 
        ["productResource", 
         ProductListCtrl]); 

    function ProductListCtrl(productResource) { 
     var vm = this; 
     productResource.query(function(data){ 
     vm.products = data; 
     }); 
    } 
}()); 

而對於我的服務,發送REST請求,我有這樣的代碼:

(function() { 
    "use strict" 
    angular 
     .module("common.services") 
     .factory("productResource", 
       ["$resource", productResource]); 


    function productResource($resource) { 
     return $resource("/api/products/:productId"); 
    } 
}()); 

我仍然收到此錯誤:Uncaught TypeError:$ httpBackend.whenGet不是函數。

任何幫助表示讚賞,或任何需要澄清,請讓我知道。

回答

3

答案很簡單:用whenGET

更換whenGet小心寫的HTTP動詞全部大寫。

請參閱ngMock documentation