0
I Karma bin mit Winkel Tests schreiben: Hier ist meine spec.js Datei:Winkelprüfung stateprovider gibt immer null
'use strict';
var state;
var $rootScope, $state, $injector, CategoriesService;
describe('Categories', function() {
describe('Categories Manage', function() {
beforeEach(function() {
beforeEach(module('ui.router'));
module('CL.Categories', function($provide) {
$provide.value('CategoriesService', CategoriesService = {});
});
inject(function(_$rootScope_, _$state_, _$injector_, $templateCache, _CategoriesService_) {
$rootScope = _$rootScope_;
$state = _$state_;
$injector = _$injector_;
CategoriesService = _CategoriesService_;
// We need add the template entry into the templateCache if we ever
// specify a templateUrl
$templateCache.put('layout/dashboard.html', '');
$templateCache.put('layout/sidebar.html', '');
$templateCache.put('layout/footer.html', '');
$templateCache.put('layout/header.html', '');
$templateCache.put('categories/manage/index.html', '');
});
});
it('should respond to URL with query parameters', function() {
expect($state.href(state)).toEqual('#/categories/manage');
});
});
});
Dies ist meine Config-Datei:
(function(){
'use strict';
angular.module('CL.Categories')
.config(['$stateProvider', categoriesConfig]);
function categoriesConfig ($stateProvider){
$stateProvider
.state('dashboard.selectCategories', {
url: "/categories/select?criteria&referrer&index",
templateUrl: 'categories/select/index.html',
controller: 'SelectCategoriesController',
controllerAs: 'vm',
resolve: {
categoryRoot: ['CategoriesService', function(CategoriesService){
return CategoriesService.getRootCategories();
}]
}
})
.state('dashboard.manageCategories', {
url: "/categories/manage?active",
templateUrl: 'categories/manage/index.html',
controller: 'ManageCategoriesController',
controllerAs: 'vm',
resolve: {
workCategories: ['CategoriesService', function (CategoriesService) {
return CategoriesService.getCategoriesByOrganisationWithCertificates();
}]
}
});
}
})();
in meiner karma.config Datei ich den Basispfad zu gesetzt haben './'. erwarten, dass der Test ($ state.href (state)) liefert immer null
ich habe versucht, die $ state.get Anweisung in der Funktion inject, die äußere und before über dem es Aussage platzieren und immer Zustand ist null – bilpor
Ich musste die Deklaration der Variablen über die äußere Beschreibung verschieben, aber es spielt keine Rolle, wo im Zyklus ich '$ state.go', '$ state.get' oder '$ state.transitionTo' versuche Ich habe immer "keinen solchen Zustand" zurückgegeben. – bilpor
Verschieben Sie die Anweisung $ state.get() in die Anweisung it(). Persönlich würde ich jeden "Zustand" -Test in seinem eigenen beschreibenden Block verpacken, mit seinem eigenen beforeEach() -Block etc., – rrd