Tôi đang cố gắng thiết lập thử nghiệm đơn vị với Angular và đã nhấn một chút tường với việc tiêm vào cấu hình mức module và các phương thức chạy.Làm thế nào để giả lập các nhà cung cấp/cấu hình trong cấu hình module để kiểm tra đơn vị
Ví dụ, nếu tôi có một định nghĩa mô-đun như vậy:
angular.module('foo', ['ngRoute', 'angular-loading-bar', 'ui.bootstrap']).config(function ($routeProvider, $locationProvider, datepickerConfig, datepickerPopupConfig) {
Karma hét lên với tôi bởi vì tôi không chế giễu đúng $ routeProvider, datepickerConfig, vv với những điều sau:
Error: [$injector:modulerr] Failed to instantiate module foo due to:
Error: [$injector:unpr] Unknown provider: $routeProvider
(và sau đó nếu tôi xóa $ routeProvider thì nó cho biết Nhà cung cấp không xác định: datepickerConfig và cứ thế)
Tôi cũng có mã sau đây trong một beforeEach:
angular.mock.module('foo');
angular.mock.module('ngRoute');
angular.mock.module('ui.bootstrap');
Và sau trong karma.conf.js tôi:
'components/angular/angular.js',
'components/angular/angular-mocks.js',
'components/angular/angular-route.js',
'components/angular-ui/ui-bootstrap-tpls.js',
'app/*.js', // app code
'app/**/*.js',
'app/**/**/*.js',
'test/app/*.js', // app.js
'test/specs/*.js', // angular.mock.module calls
'test/**/*.js', // tests
'test/**/**/*.js'
Cảm ơn bạn cho bất kỳ lời khuyên.
Bạn có tìm ra cách giải quyết vấn đề này không. Làm thế nào để có được ui-router chế giễu? Vui lòng cập nhật câu hỏi và thêm câu trả lời nếu bạn có thể giải quyết. – aksinghdce