les tests angularjs ui-router méthode go()
J'ai un contrôleur qui obtient une valeur de $scope
et l'envoie à un état différent de l'état:
controllers.controller('SearchController', ['$scope', '$state', '$stateParams',
function($scope, $state, $stateParams) {
$scope.search = function() {
$stateParams.query = $scope.keyword;
$state.go('search', $stateParams);
};
}]);
Je suis pas sûr de la façon d'aller sur l'unité de test, cette méthode de recherche. Comment puis-je vérifier que le go méthode a été appelée ou faire une sorte de when($state.go('search', $stateParams)).then(called = true);
avec Karma/AngularJS?
OriginalL'auteur shmish111 | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
À la fois de ces sons comme des choses que vous pouvez faire avec le Jasmin des espions.
Il y a un bon espion triche ici http://tobyho.com/2011/12/15/jasmine-spy-cheatsheet/ ou le Jasmin docs ici.
La bonne chose à propos de l'utilisation des espions est qu'il vous permettra d'éviter d'effectuer la transition de l'état, sauf si vous explicitement le dire. Un état de transition ne manquera pas de vous test de l'unité dans le Karma s'il change l'URL.
Avec Le Jasmin 2.x, remplacer l'appel de la fonction
.andCallFake
avec.and.callFake
.OriginalL'auteur Andyrooger