2015-12-23 19 views
1

在下面的例子,我想嘲笑dataService.The問題是我需要測試的功能,數據功能下(數據)返回後。請建議如何寫茉莉花測試用例下面angularjs代碼

由於邏輯是依賴於returned.I覺得諷刺的數據/間諜活動的dataservice可能無法在這方面提供幫助。

請提供可能的解決方案。

var app = angular.module('app', []); 
app.controller('Controller', ['$scope', '$location', 'dataService', '$window', 'OtherService', 'Config', function ($scope, $location, dataService, $window, SomeService, Config) { 

$scope.btnClick = function() { 
    var SomeNumber = $scope.enteredNumber; 
    if (SomeNumber == "xyz") { 
     $scope.errorType = 'errorRequired'; 
    } 
    else { 

     dataService.validate_enteredNumber(SomeNumber, function (data) { 
           if (data != null) { 
            if (data.responsetype == 1) { 
             $scope.errortype = data.responsemessage; 
            } 
        else { 
         dataservice.getdetailsforenterednumber(data.responsemessage, function (getdata) { 
          if (getdata.responsetype == 1) { 
           $scope.errortype = getdata.responsemessage; 
          } 
          else if (getdata.responsetype == 2) { 
           if (getdata.responsemessage.touppercase() == "consumer") 
            $window.location.href = "url"; 
          } 
          else 
           $location.path('/Somelist').search({ SomeNumber: getdata.responsemessage }); 
         }); 
        } 
            } 



     }); 
    } 
} 


if ($location.search().SomeNumber != null) { 
    $scope.enteredNumber = $location.search().SomeNumber; 
    $scope.btnClick(); 
} 

} ]); 

回答

0

我不完全確定你在做什麼。假設你只是想在validate_enteredNumber函數被調用後測試功能,你仍然可以窺探該函數並提供一個模擬結果。

spyOn(data_service, 'validate_enteredNumber').andReturn(mockObjectYouCreate); 
+0

感謝您的答覆。 使用mockobject我能夠測試下面描述的代碼: 如果(data!= null)if(data.responsetype == 1) } 及其內部的其他代碼。 – Programmer