在单元测试中运行摘要循环后无法更改范围值

时间:2016-04-15 17:08:28

标签: javascript angularjs unit-testing anguarjs-digest-cycle

我无法通过单元测试。我期待字符串改变,但继续回到原来的描述

在我的单元测试中,我能够以两种方式模拟属性更改。我正在更改 $属性

<div global-alert description=\"description\"> </div>

正在观察属性并将其添加到范围中,如此......

$attrs.$observe('description', function () {
    $scope.description = $attrs.description;
});

globalAlert 是指令的名称,说明是我要更改的属性。

在我的单元测试中,我的规格设置如此

 it('should set scope.description to true', function () {
     // 1 mock
    element.attr('description', function () {
        element.attr('description', 'hotDog');
    });

   //2 just recreate the angular.element('<div global-alert description = \"hotDog\"> </div>        
    scope = element.scope();
    element = $compile(html)($rootScope);
    $rootScope.$digest();  // runs in the debugger shows change
    expect(scope.description).to.equal('hotdog');  // equals 'description'
}); 

描述仍设置为expect上的原始字符串值。摘要被点击,我的调试器上的javascript函数显示了更改。

**请注意,在我的单元中的摘要测试后,

的值
 $scope.description is "hotDog".   

enter image description here

非常感谢任何帮助解决这个问题

0 个答案:

没有答案