#angularjs #jasmine
#angularjs #jasmine
Вопрос:
Мой контроллер выглядит следующим образом:
function Ctrl1($scope,$state, $modal, $q, ResourceABC) {
function1(){ /*.. something happens here.*/}
function2(){ /*.. something happens here .*/}
function3(){ /*.. something happens here.*/}
if (!$state.params.gameID) {
var singleGameID = 'tmp-xyz';
var multipleGameID = 'gen-abc';
if ($state.current.name === 'single-user') {
$scope.player.gameID = singleGameID;
}
else if ($state.current.name === 'multi-user') {
$scope.player.gameID = multipleGameID;
}
else {
$scope.player.gameID = singleGameID;
}
}
else {
$scope.player.gameID = $state.params.gameID;
}
}
Я написал код для тестирования того же, что и ниже:
describe('Ctrl1',function(){
var $rootScope,$controller,$httpBackend,q,state;
beforeEach(module(game));
beforeEach(function(){
angular.mock.inject(function($injector){
$rootScope = $injector.get('$rootScope');
$controller = $injector.get('$controller');
q = $injector.get('$q');
state = $injector.get('$state');
});
var scope = $rootScope.$new();
var resource1 = sinon.stub({});
createController = function(){
return $controller('DynamicRegistrationDialogCtrl',{
$scope: scope,
$state: state,
$q: q,
ResourceABC: resource1
});
}
});
it('should check that $scope.player.gameID is set',function(){
});
});
Мой вопрос :
- когда я просто хочу протестировать небольшую функциональность контроллера, должен ли я загружать все зависимости при создании $controller в тесте?
- Во-вторых, как мне проверить, установлен ли $scope.player.GameID ? Я имею в виду, как мне передать в $state.parmams. каков порядок действий здесь?