1
我一直在为我的Progress Service编写一个单元测试,它管理一个流程的不同状态(跳转到下一个未完成的步骤,将步骤标记为完整等等)。 )
我想配置$ stateProvider来创建一组状态,然后测试服务对它,但我无法得到状态更改。当然,我想以一种孤立的方式来测试它,所以不依赖于我的应用程序中的现有状态。
下面是简单的单元测试:
ddescribe('Progress Steps Service', function() {
var sut, $rootScope, $state;
// holds ui.router and ProgressStepsService deps
beforeEach(module('Core'));
beforeEach(inject(
function(_$rootScope_, _$state_) {
$rootScope = _$rootScope_;
$state = _$state_;
}
));
beforeEach(inject(function(ProgressStepsService) {
// var steps = [...];
// sut = ProgressStepsService;
// sut.resolve(steps);
angular.module('TestModule', []).config(function($stateProvider) {
$stateProvider
.state('root', {url: '/root', abstract: true})
.state('root.step1', {url: '/step1'})
.state('root.step2', {url: '/step2'})
.state('root.step3', {url: '/step3'});
});
$state.go('root.step1');
$rootScope.digest();
}));
it('should init from the first step', function() {
expect($state.$current.name).toBe('root.step1');
});
});
我得到的错误是
Error: Could not resolve 'root.step1' from state ''
我拿''
是默认状态,由于某种原因,配置状态不通航。我可能错过了一些非常基本的东西。
我应该如何配置$stateProvider
来测试任意状态?