J'essaie de simuler un changement de route réussi pour écrire un test. Une url c'est-à-dire 'example /: id' a été enregistrée en utilisant routeProvider.Test du contrôleur avec les paramètres routeChangeSuccess mais manquants
$scope.$on('$routeChangeSuccess', function(angularEvent, current, previous) {
var super_important_id = current.pathParams.id
// Do something with super_important_id
})
J'ai essayé
$location.path('/example/0')
$rootScope.$apply();
$rootScope.$broadcast('$routeChangeSuccess')
Mais il jette toujours cette erreur quand je lance le test
TypeError: 'undefined' is not an object (evaluating 'current.pathParams')
Comment puis-je railler avec succès le changement d'itinéraire événement succès et faire remplir dans pathParams?
Pourquoi l'emplacement ne peut-il pas déclencher l'événement routechangesuccsss? – allenylzhou
Je ne connais pas la réponse à votre question, mais il semble que la plupart des gens testent l'événement manuellement plutôt que d'avoir un déclenchement angulaire de l'événement. Voir http://stackoverflow.com/questions/22447988/how-to-mock-trigger-a-routechangesuccess-in-angular-unit-tests – dnc253