Kiểm tra đơn vị một chỉ thị góc không phải là rất khó, nhưng tôi phát hiện ra rằng có nhiều cách khác nhau để làm điều đó.Làm thế nào để kiểm tra đơn vị một chỉ thị góc
Với mục đích của bài viết này, cho phép giả định các chỉ thị sau
angular.module('myApp')
.directive('barFoo', function() {
return {
restrict: 'E',
scope: true,
template: '<p ng-click="toggle()"><span ng-hide="active">Bar Foo</span></p>',
controller: function ($element, $scope) {
this.toggle() {
this.active = !this.active;
}
}
};
});
Bây giờ tôi có thể nghĩ đến hai cách để kiểm tra đơn vị
Phương pháp này 1:
describe('Directive: barFoo', function() {
...
beforeEach(inject(function($rootScope, barFooDirective) {
element = angular.element('<bar-foo></bar-foo>');
scope = $rootScope.$new();
controller = new barFooDirective[0].controller(element, scope);
}));
it('should be visible when toggled', function() {
controller.toggle();
expect(controller.active).toBeTruthy();
});
});
Phương pháp 2 :
beforeEach(inject(function ($compile, $rootScope) {
element = angular.element('<bar-foo></bar-foo>');
scope = $rootScope.$new();
$compile(element)(scope);
scope.$digest();
}));
it ('should be visible when toggled', function() {
element.click();
expect(element.find('span')).not.toHaveClass('ng-hide');
});
Vì vậy, tôi tò mò những gì của pro và khuyết điểm là của cả hai phương pháp và đó là một trong những mạnh mẽ nhất?
tôi cho rằng cách nhấp vào phần tử trong kiểm tra đơn vị cũng giống như các phương pháp điều khiển thử nghiệm trong thước đo – Appeiron