Подтвердить что ты не робот

Как я могу проверить изменение $scope.watch(AngularJS) в Жасмине?

Недавно я начал писать что-то с AngularJS, и я не уверен, как начать писать тест для этой конкретной вещи. Я создаю режим запроса справки, который имеет разные состояния. Поэтому в моем контроллере я использую переменную $scope.request_mode. Различные ссылки для активации запросов справки устанавливают эту переменную на что-то по-другому.

Внутри моей директивы я делаю $scope.$watch('request_mode', function(){...});, чтобы избирательно активировать или деактивировать вещи по мере изменения режима запроса. Код работает отлично, но проблема, с которой я столкнулась, - это тестирование. Кажется, я не могу заставить Жасмин забрать $scope.$watch и вообще сжечь что-нибудь, когда оно изменится.

Я уверен, что кто-то сталкивался с этим раньше, поэтому любые предложения были бы очень оценены.

4b9b3361

Ответ 1

В ваших модульных тестах вам нужно вручную вызвать $scope.$digest() или $scope.$apply() для запуска $scope.$watch().

Обычно в вашем коде вам не нужно этого делать, поскольку директивы типа ng-click делают $rootScope.$apply для вас за кулисами.