Tôi cần ứng dụng của mình chạy một số cấu hình tại thời điểm chạy vi điểm cuối HTTP.Kiểm tra đơn vị khi tải mọi thứ khi chạy ứng dụng với AngularJS
Tôi đã viết một dịch vụ đơn giản để làm điều đó:
module.factory('config', function ($http, analytics) {
return {
load: function() {
$http.get('/config').then(function (response) {
analytics.setAccount(response.googleAnalyticsAccount);
});
}
}
});
Tiếp theo, tôi gọi module này trong một khối chạy của module ứng dụng của tôi:
angular.module('app').***.run(function(config) {
config.load();
});
Tất cả đang làm việc tốt khi ứng dụng chạy nhưng trong các bài kiểm tra đơn vị của tôi, tôi nhận được lỗi này: "Lỗi: Yêu cầu bất ngờ: GET/config"
Tôi biết điều đó có nghĩa là gì nhưng tôi không biết làm thế nào để giả lập nó khi nó xảy ra từ khối chạy.
Nhờ sự giúp đỡ của bạn
EDIT để thêm đặc tả
Calling này trước mỗi
beforeEach(angular.mock.module('app'));
Cố gắng này để chế nhạo $ httpBackend:
beforeEach(inject(function($httpBackend) {
$httpBackend.expectGET('/config').respond(200, {'googleAnalyticsAccount':});
angular.mock.module('app')
$httpBackend.flush();
}));
Nhưng có:
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)
EDIT kể từ khi cập nhật cho AngularJS 1.0.6
Kể từ khi tôi đã cập nhật lên AngularJS 1.0.6, tư vấn bởi Igor từ nhóm kiễu góc, vấn đề này đã biến mất nhưng bây giờ bây giờ tôi đã có cái này, nghe có vẻ "bình thường" hơn nhưng tôi vẫn không thể tìm ra cách để nó hoạt động.
Error: Injector already created, can not register a module!
Tôi cũng gặp lỗi này khi thử nghiệm 'run()' – halfcube
Cuối cùng tôi đã di chuyển nó trong bộ điều khiển gốc Ứng dụng của mình để làm cho nó có thể kiểm chứng được. –