如何让$ watch对单元测试中的范围变量做出反应

时间:2014-03-24 20:16:14

标签: angularjs unit-testing mocha

我对控制器进行了单元测试,该控制器监视其范围内的变量。当我更改变量的值时,不会触发$ watch。

2 个答案:

答案 0 :(得分:0)

你需要在范围内调用$ apply()。

$ watch会评估每个摘要周期中的监视变量,但在单元测试摘要中不会连续运行 - 您必须通过调用$ apply或$ digest自行调用它。

答案 1 :(得分:0)

测试中的这类内容应确保更新:

it('should update watched value', function() {
    $scope.$apply(function() {
        $scope.yourWatchedVariable = 'new value';
    });
    //expect something to happen based on watch
});