在控制器内,我有一个使用$state.transitionTo来“重定向”到另一个状态的功能.
现在我被困在测试这个功能,我总是错误错误:没有这样的状态’状态二’.我该怎么测试呢?对于我来说,控制器并不了解其他国家的任何信息,但是我如何模拟这个状态呢?
一些代码:
angular.module( 'mymodule.state-one',[ 'ui.state' ]) .config(function config($stateProvider) { $stateProvider.state('state-one',{ url: '/state-one',views: { 'main': { controller: 'MyCtrl',templateUrl: 'mytemplate.tpl.html' } } }); }) .controller('MyCtrl',function ($scope,$state) { $scope.testVar = false; $scope.myFunc = function () { $scope.testVar = true; $state.transitionTo('state-two'); }; } );
describe('- mymodule.state-one',function () { var MyCtrl,scope beforeEach(module('mymodule.state-one')); beforeEach(inject(function ($rootScope,$controller) { scope = $rootScope.$new(); MyCtrl = $controller('MyCtrl',{ $scope: scope }); })); describe('- myFunc function',function () { it('- should be a function',function () { expect(typeof scope.myFunc).toBe('function'); }); it('- should test scope.testVar to true',function () { scope.myFunc(); expect(scope.testVar).toBe(true); expect(scope.testVar).not.toBe(false); }); }); });