我无法通过单元测试。我期待字符串改变,但继续回到原来的描述。
在我的单元测试中,我能够以两种方式模拟属性更改。我正在更改 $属性
<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".
非常感谢任何帮助解决这个问题