jquery – 我如何测试一个$scope.watch(AngularJS)更改在Jasmine?

我刚刚开始写AngularJS的东西,我不知道如何去为这个特定的事情写一个测试。我正在建立一个“帮助请求”模式具有不同的状态。所以在我的控制器,我使用一个$ scope.request_mode变量。激活帮助请求的不同链接将该变量设置为不同的东西。

然后在我的指令,我做一个$范围$ watch(‘request_mode’,function(){…});以在请求模式改变时选择性地激活或停用事物。代码都工作伟大,但我遇到的问题是与测试。我似乎不能让Jasmine拿起$ scope。$ watch并且实际上在任何东西改变时触发。

我相信有人已经遇到这个以前,所以任何建议将非常感谢。

解决方法

在你的单元测试中,你需要手动调用$ scope。$ digest()或$ scope。$ apply()来触发$ scope。$ watch()。

通常在你的代码中,你不必这样做,因为指令像ng-click做$ rootScope。$适用于你的幕后。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...