Angularjs 单元测试隔离范围值
Angularjs unit test isolated scope value
我有一个如下所示的指令:
angular.directive('myDirective', ['$compile', function($compile){
return {
link: function(scope, element, attr, controller) {
function update(){
if(scope.value == "A"){
scope.desc = "Welcome";
}else{
scope.desc = "Not Welcome";
}
}
scope.$watch('value', function(newValue, oldValue) {
update();
},true);
update();
}
};
}]);
我如何编写一个单元测试来验证 scope.value
中的更改 return 是否正确 scope.desc
?
根据来自 this question 的信息:
// inject $rootScope and $compile in beforeEach
it('should change desc on value change', function() {
var scope = $rootScope.$new();
var element = angular.element('<my-directive></my-directive>');
element = $compile(element)(scope);
$rootScope.$digest();
var directiveScope = element.scope();
expect(directiveScope.desc).toEqual("Not Welcome");
directiveScope.value = 'A';
$rootScope.$digest();
epxect(directiveScope.desc).toEqual("Welcome");
});
我有一个如下所示的指令:
angular.directive('myDirective', ['$compile', function($compile){
return {
link: function(scope, element, attr, controller) {
function update(){
if(scope.value == "A"){
scope.desc = "Welcome";
}else{
scope.desc = "Not Welcome";
}
}
scope.$watch('value', function(newValue, oldValue) {
update();
},true);
update();
}
};
}]);
我如何编写一个单元测试来验证 scope.value
中的更改 return 是否正确 scope.desc
?
根据来自 this question 的信息:
// inject $rootScope and $compile in beforeEach
it('should change desc on value change', function() {
var scope = $rootScope.$new();
var element = angular.element('<my-directive></my-directive>');
element = $compile(element)(scope);
$rootScope.$digest();
var directiveScope = element.scope();
expect(directiveScope.desc).toEqual("Not Welcome");
directiveScope.value = 'A';
$rootScope.$digest();
epxect(directiveScope.desc).toEqual("Welcome");
});