¿Cómo probaría un cambio de $ scope.watch (AngularJS) en Jasmine?

Recientemente empecé a escribir algo con AngularJS y no estoy seguro de cómo escribir un examen para esta cosa en particular. Estoy creando un modo de “Solicitud de ayuda” que tiene diferentes estados. Así que en mi controlador, uso una variable $ scope.request_mode. Los diferentes enlaces para activar las solicitudes de ayuda establecen esa variable en algo diferente.

Luego, dentro de mi directiva, estoy haciendo un $scope.$watch('request_mode', function(){...}); para activar o desactivar selectivamente las cosas a medida que cambia el modo de solicitud. El código funciona bien, pero el problema que tengo es con las pruebas. Parece que no puedo hacer que Jasmine recoja el $scope.$watch y, en realidad, dispare algo cuando cambie.

Estoy seguro de que alguien se ha encontrado con esto antes, por lo que cualquier sugerencia sería muy apreciada.

En las pruebas de unidad, debe 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 para usted entre bambalinas.