2013-11-02 83 views
1

expectwhenngMock AngularJS模塊中有什麼區別?AngularJS模擬 - 預計與

他們都提供了一個迴應,所以你什麼時候使用一個呢?

我在angularJS.com上閱讀了文檔,但它對我來說並不是很清楚。

這是我想用Jasmine測試的服務,所以我應該期望端點被調用,還是應該在返回的已知值上存儲?

(function() { 
    'use strict'; 

    var app = angular.module('cs'); 

    app.service('PlateCheckService', ['$http', function ($http) { 
     return { 
      checkPlate: function (plateNumber) { 
       return $http.post('PlateCheck/Index', { 
        plateNumber: plateNumber 
       }).then(function (response) { 
        return { 
         message: response.data.VehicleAtl === null ? 'Clean' : 'Hot', 
         alertClass: response.data.VehicleAtl === null ? 'alert-success' : 'alert-danger' 
        }; 
       }); 
      } 
     }; 
    }]); 

}()); 

回答

3

在文檔的解釋是晶瑩剔透的對我說:

請求期望VS後端定義

請求期望提供一種方法,使有關的應用程序和定義提出了要求斷言針對這些請求的迴應。如果預期的請求沒有完成或者它們按錯誤的順序進行,測試將失敗。

後端定義允許您爲應用程序定義一個假的後端,如果發出了特定請求,它不會斷言,如果發出請求,它只會返回經過訓練的響應。無論請求是否在測試期間完成,測試都會通過。

因此,如果您使用when(),您可以按任何順序執行任何請求,並且測試不會失敗。如果您使用expect(),則如果後端未收到預期請求,則測試將失敗,順序與預期相同。