2013-03-26 35 views
13

ile uygulamada bir şeyler yüklenirken birim testi Uygulamamın çalışma zamanında bir HTTP son noktasını çalıştırmak için uygulamasına ihtiyacım var.AngularJS

module.factory('config', function ($http, analytics) { 
    return { 
     load: function() { 
      $http.get('/config').then(function (response) { 
       analytics.setAccount(response.googleAnalyticsAccount); 
      }); 
     } 
    } 
}); 

Sonraki, benim app modülün bir çalışma bloğunda bu modülü çağırır:

bunu yapmak için basit bir hizmet yazdı uygulaması olduğunda tüm iyi çalışıyor

angular.module('app').***.run(function(config) { 
     config.load(); 
    }); 

koşmak ama benim birim testlerimde, bu hatayı alıyorum: "Hata: Beklenmeyen istek: GET/config"

Bunun ne anlama geldiğini biliyorum ama bir çalıştırma bloğundan gerçekleştiğinde bununla dalga geçmeyi bilmiyorum. Bu çalıştı her

beforeEach(angular.mock.module('app')); 

önce eklemek Yardımlarınız

DÜZENLEME Spec bu çağrılması

için

sayesinde alay $ httpBackend:

beforeEach(inject(function($httpBackend) { 

    $httpBackend.expectGET('/config').respond(200, {'googleAnalyticsAccount':}); 

    angular.mock.module('app') 

    $httpBackend.flush(); 
})); 

Ama var:

Angularjs Ben Açısal ekibi, konu gitmiş dan İgor tarafından, angularjs 1.0.6 güncellendi tavsiye ettik beri 1.0.6

Güncellemenin beri

TypeError: Cannot read property 'stack' of null 
     at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55) 
    TypeError: Cannot read property 'stack' of null 
     at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55) 
    TypeError: Cannot read property 'stack' of null 
     at workFn (/Users/arnaud/workspace/unishared-dredit/test/lib/angular/angular-mocks.js:1756:55) 

DÜZENLEME ama şimdi artık var Bu daha "normal" sesler ama yine de nasıl çalışacağını anlayamıyorum.

Error: Injector already created, can not register a module! 
+2

Ayrıca, 'run() ' – halfcube

+0

'u test ederken bu hatayı ben de test yapabilmek için Uygulama kök denetleyicimde taşıdım. –

cevap