【问题标题】:How do I make $watch react on a scope variable change in a unit test如何让 $watch 对单元测试中的范围变量更改做出反应
【发布时间】:2014-05-02 10:01:33
【问题描述】:

我有一个控制器的单元测试,它在其范围内监视变量。当我更改变量的值时,不会触发 $watch。

【问题讨论】:

    标签: angularjs unit-testing mocha.js


    【解决方案1】:

    你的测试中这样的东西应该确保它是更新的:

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

    【讨论】:

      【解决方案2】:

      你需要在作用域上调用 $apply()。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 1970-01-01
        • 2019-08-06
        相关资源
        最近更新 更多