jquery - new - watch angular object
¿Cómo probaría un cambio de $ scope.watch(AngularJS) en Jasmine? (1)
En las pruebas de su unidad necesita llamar manualmente $scope.$digest()
o $scope.$apply()
para activar $scope.$watch()
.
Normalmente en su código no tendría que hacer esto, ya que las directivas como ng-click
do $rootScope.$apply
detrás de las escenas.
Recientemente comencé a escribir algo con AngularJS y no estoy seguro de cómo escribir una prueba para esta cosa en particular. Estoy construyendo un modo de "Solicitud de ayuda" que tiene diferentes estados. Entonces en mi controlador, uso una variable $ scope.request_mode. Los diferentes enlaces para activar las solicitudes de ayuda establecen esa variable de forma diferente.
Luego, dentro de mi directiva, estoy haciendo $scope.$watch(''request_mode'', function(){...});
para activar o desactivar selectivamente cosas a medida que cambia el modo de solicitud. El código funciona muy bien, pero el problema que tengo es con las pruebas. Parece que no puedo hacer que Jasmine tome el $scope.$watch
y realmente dispare algo cuando cambia.
Estoy seguro de que alguien se ha topado con esto antes, por lo que cualquier sugerencia sería muy apreciada.