Я хочу написать тест для метода угловой директивы в жасмине. Как проверить метод toHaveBeenCalled для .css в следующем коде? Я пытаюсь создать шпион для этого метода, но всегда получаю Expected spy css to have been called.
. Хорошо ли тестировать вызов метода css?Испытательная угловая директива - angular.element.css
метод Директива для проверки:
scope.contentPadding =() => {
const bars = angular.element(element[0].querySelectorAll('.intro'));
if (bars.length > 0) {
const bar = angular.element(bars[bars.length - 1]);
bar.parent().css('padding-top', `${bar[0].offsetHeight - 10}px`);
}
};
Моя реализация тест:
describe('test', function() {
var $rootScope,
$compile,
$scope,
$window,
element;
function compileDirective() {
var html = angular.element(`
<div my-directive-name>
<div class="section">
<div class="intro"></div>
</div>
</div>`);
element = $compile(html)($scope);
$scope.$digest();
}
beforeEach(function() {
angular.mock.module('my-directive-name');
inject(function(_$rootScope_, _$compile_, _$window_) {
$rootScope = _$rootScope_;
$compile = _$compile_;
$window = _$window_;
$scope = $rootScope.$new();
compileDirective();
});
});
describe('padding', function() {
it('adds top padding', function() {
var el = angular.element(element[0].querySelector('.section'));
spyOn(el, 'css');
$scope.contentPadding();
$scope.$digest();
expect(el.css).toHaveBeenCalled();
});
});
});
Покажите нам свой текущий тест. –