karma state go 无法解决“...”
karma state go could not resolve "..."
我正在尝试在我的控制器中测试一个函数,只是测试是否调用了 $state.go
。我在 $state.go
上放置了一个间谍,但是当我调用该函数时,我得到 "Could not resolve 'thestate' from state ..."
这是我的控制器的功能:
function cancel(){
$state.go('thestate', {}, {reload: true});
}
和我的测试:
it('should change state to thestate', function() {
this.scope.cancel();
});
当它运行取消函数时,我得到一个错误 "Could not resolve 'thestate' from state ..." 但我的路线中确实有一个定义的状态。
如何模拟状态?
除非在单元测试中测试的是UI路由器,否则ui.router
模块不必加载并且$state
必须被模拟,以及任何其他当前规范中未测试的服务。
beforeEach(module('app', { $state: {
go: jasmine.createSpy()
}));
...
it('...', inject(function ($state) {
this.scope.cancel();
expect($state.go).toHaveBeenCalledWith('thestate', {}, {reload: true});
}));
我正在尝试在我的控制器中测试一个函数,只是测试是否调用了 $state.go
。我在 $state.go
上放置了一个间谍,但是当我调用该函数时,我得到 "Could not resolve 'thestate' from state ..."
这是我的控制器的功能:
function cancel(){
$state.go('thestate', {}, {reload: true});
}
和我的测试:
it('should change state to thestate', function() {
this.scope.cancel();
});
当它运行取消函数时,我得到一个错误 "Could not resolve 'thestate' from state ..." 但我的路线中确实有一个定义的状态。
如何模拟状态?
除非在单元测试中测试的是UI路由器,否则ui.router
模块不必加载并且$state
必须被模拟,以及任何其他当前规范中未测试的服务。
beforeEach(module('app', { $state: {
go: jasmine.createSpy()
}));
...
it('...', inject(function ($state) {
this.scope.cancel();
expect($state.go).toHaveBeenCalledWith('thestate', {}, {reload: true});
}));