gpt4 book ai didi

jquery - 我如何测试 Jasmine 中的 $scope.watch (AngularJS) 更改?

转载 作者:行者123 更新时间:2023-12-03 21:29:18 27 4
gpt4 key购买 nike

我最近刚刚开始使用 AngularJS 编写一些东西,但我不知道如何为这个特定的东西编写测试。我正在构建一个具有不同状态的“帮助请求”模式。因此,在我的 Controller 中,我使用 $scope.request_mode 变量。激活帮助请求的不同链接将该变量设置为不同的值。

然后在我的指令中,我正在执行 $scope.$watch('request_mode', function(){...}); 来选择性地激活或停用请求模式变化。代码一切都很好,但我遇到的问题是测试。我似乎无法让 Jasmine 拿起 $scope.$watch 并在它发生变化时实际触发任何内容。

我确信之前有人遇到过这个问题,所以任何建议将不胜感激。

最佳答案

在单元测试中,您需要手动调用$scope.$digest()$scope.$apply()来触发$scope.$watch().

通常在您的代码中您不必这样做,因为像 ng-click 这样的指令会在幕后为您执行 $rootScope.$apply

关于jquery - 我如何测试 Jasmine 中的 $scope.watch (AngularJS) 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17112446/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com