Мне нужна помощь с моим контрольным тестом. У меня есть resolve
с использованием ui-router. В своем тесте мне нужно выяснить, как обращаться с resolve
exampleData
.
config.js
angular.module('myModule')
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('site', {
abstract: true,
resolve: {
exampleData: function(ExampleService) {
// ExampleService.get() makes an $http call
return ExampleService.get();
}
},
// etc
})
.state('example', {
parent: 'site',
url:'/example',
controller: 'ExampleCtrl as example',
templateProvider: function($templateCache) {
return $templateCache.get('views/example.html');
}
});
}]);
ПРИМЕР controller.js
angular.module('myModule')
.controller('ExampleCtrl', ['exampleData',
function(exampleData) {
var self = this;
self.exampleData = exampleData;
// self.exampleData should output something like
// [
// {id: 1, title:'something'},
// {id: 2, title:'something'},
// {id: 3, title:'something'}
// ]
}]);
ПРИМЕР controller.test.js
describe('Controller: ExampleCtrl', function() {
beforeEach(module('myModule'));
var ctrl;
beforeEach(inject(function($controller) {
ctrl = $controller('ExampleCtrl');
}));
describe('initialization', function() {
beforeEach(function() {});
it('should exist', function() {
expect(!!ctrl).toBe(true);
});
it('should ...', function() {
// do something
});
});
Когда я запускаю тесты, я получаю следующее сообщение об ошибке:
Unknown provider: exampleDataProvider <- exampleData <- ExampleCtrl
Мой вопрос: что делать для того, чтобы проверить resolve
в моем ExampleCtrl
? ExampleService.get()
- это услуга, которая вызывает вызов и возвращает $http
и массив объектов.
Мое решение работает ???? – ngLover