2016-02-03 101 views
0

我對AngularJs非常陌生,並且在做單元測試。我遇到了這個問題,我寫了一個測試,它給了我這個錯誤,我意識到括號中可能會有一些錯誤,但我只是給出了一個代碼示例,以瞭解我需要如何測試它。AngularJs廣播單元測試錯誤

Expected spy $broadcast to have been called with [ 'dataSamplesReceived', Object({ newDataSamples: Object({ }) }) ] 

控制器

app.controller('fileUploadCtrl', 
     function($scope, $rootScope, $log, fileUpload) { 
    $scope.uploadFile = function() { 
        var file = $scope.sampleFile; 
        $rootScope.$broadcast("sampleFilesSelected", { 
         newSampleFiles: file 
        }); 
         .success(function (data) { 
          $rootScope.$broadcast("dataSamplesReceived", { 
           newDataSamples: data 
          }); 
         }) 
         .error(function (data) { 
          alert("Upload failed"); 
         }); 
       } // uploadFile 

spec.js

​​3210
+0

spyOn($ rootScope,'$ broadcast');其次是$ rootScope。$ new()看起來有嫌疑 – danday74

回答

0

,這是爲我工作...

spyOn(state, 'go').and.callThrough(); 
// blah blah 
expect(state.go).toHaveBeenCalledWith('home'); 

嘗試...

spyOn($rootScope, '$broadcast').and.callThrough(); 
expect($rootScope.$broadcast).toHaveBeenCalledWith('dataSamplesReceived', {newDataSamples: {}}) 
+0

我繼續前進,嘗試了你的建議,並更新了我的代碼以反映。然而,它說「預期的間諜$廣播已被['sampleFilesSelected',對象({newSampleFiles:對象({})})]調用,但它從來沒有被調用。」對於另一個測試以及'dataSamplesReceived' – user2402107