Ich habe eine Funktion in Winkelanweisung, die auf der Uhr ausgelöst wird. Wie überprüfe ich die Timeout-basierte Scrolling-Aktivität der Funktion scroll
seit es nicht im Geltungsbereich? Testen Sie eine Richtlinie Funktion durch Uhr
scope.$watch('elementId', function(value) {
//How do i test scroll function contents?
scroll(element, value);
});
function scroll (pE, element) {
console.log('Here');
$timeout(function afterTimeout() {
var scrollTo = $('#' + element);
var container = $(pE);
container.animate({scrollTop : scrollTo[0].offsetTop - container[0].offsetTop - 10}, 'slow');
}, 250);
}
Die detaillierte Code ist hier http://jsfiddle.net/QGmCF/68/
Unit-Tests ein echtes DOM ist nicht sehr erfreulich Aufgabe. In diesem http://stackoverflow.com/a/37527210/3731501 erfahren Sie, wie Sie $ Timeout-Aufrufe testen können. Da es nicht im Geltungsbereich ist, wissen Sie bereits, dass es einfacher wäre, zu testen, ob es sich um einen Bereich handelt. Expose 'scroll' Funktion als Scope/Controller-Methode, dies wird Testbarkeit profitieren. – estus
Ah okay..wird sich das mal anschauen. Danke! – prem89