2016-02-03 105 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