Tôi đang cố gắng để đơn vị kiểm tra một chỉ thị đơn giản nhưng biến trong phạm vi luôn luôn là không xác định.Làm thế nào tôi có thể kiểm tra đơn vị phạm vi cô lập trong chỉ thị
Chỉ Src Code:
.directive('ratingButton', ['$rootScope',
function($rootScope) {
return {
restrict: "E",
replace: true,
template: '<button type="button" class="btn btn-circle" ng-class="getRatingClass()"></button>',
scope: {
buttonRating: "="
},
link: function(scope, elem, attr) {
scope.getRatingClass = function() {
if (!scope.buttonRating)
return '';
else if (scope.buttonRating.toUpperCase() === 'GREEN')
return 'btn-success';
else if (scope.buttonRating.toUpperCase() === 'YELLOW')
return 'btn-warning warning-text';
else if (scope.buttonRating.toUpperCase() === 'RED')
return 'btn-danger';
else if (scope.buttonRating.toUpperCase() === 'BLUE')
return 'btn-info';
}
}
};
}])
Test:
describe('Form Directive: ratingButton', function() {
// load the controller's module
beforeEach(module('dashboardApp'));
var scope,
element;
// Initialize the controller and a mock scope
beforeEach(inject(function($compile, $rootScope) {
scope = $rootScope.$new();
//set our view html.
element = angular.element('<rating-button button-rating="green"></rating-button>');
$compile(element)(scope);
scope.$digest();
}));
it('should return appropriate class based on rating', function() {
//console.log(element.isolateScope());
expect(element.isolateScope().buttonRating).toBe('green');
expect(element.isolateScope().getRatingClass()).toBe('btn-success');
});
});
tôi đã sử dụng mã tương tự như trong một thử nghiệm đơn vị chỉ thị tôi đã bằng cách thông qua các giá trị thông qua các thuộc tính nguyên tố và nó làm việc như mong đợi. Đối với nút kiểm tra này, luôn luôn không xác định vị trí không chắc chắn nơi cần đi từ đây (Tôi khá mới với Jasmine/Karma)
Bất kỳ trợ giúp nào sẽ tuyệt vời!
ah trông giống như mà làm việc. không biết tại sao tôi không nghĩ về điều đó! – atsituab
không phải lo lắng điều đó xảy ra .. :) – PSL
ugh, lãng phí quá nhiều thời gian cho việc này. làm việc tốt cho @ nhưng = đã không nhận ra bạn không thể đặt chuỗi chữ trong đó (nó là không thể). vui mừng Angular 2 đang loại bỏ 2 cách ràng buộc dưới mui xe. – FlavorScape