我无法通过单元测试。我期望字符串会改变,但会不断取回原始描述。
在我的单元测试中,我能够以两种方式模拟属性更改。我正在更改$attribute
<div global-alert description=\"description\"> </div>
正在观察该属性并将其添加到范围中,如下所示...
$attrs.$observe('description', function () {
$scope.description = $attrs.description;
});
globalAlert是指令的名称,而description 是我要更改的属性。
在我的单元测试中,我的规范设置如下
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'
});
描述仍然设置为期望的原始字符串值。摘要受到打击,并且在我的调试器上的 javascript 函数中显示了更改。
**请注意,在我的单元测试中的摘要之后,值
$scope.description is "hotDog".
任何解决此问题的帮助将不胜感激