0
私は時計でトリガされるangle指令の関数を持っています。どのようにスコープに含まれていないので、関数scroll
のタイムアウトに基づくスクロール・アクティビティをテストしますか?watch関数を使って指示関数をテストする
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);
}
詳細なコードは、私はあなたのコードをクリーンアップするためにいくつかの提案があり、ここで http://jsfiddle.net/QGmCF/68/
実際のDOMをユニットテストすることはあまり面白いことではありません。 $ timeout呼び出しをテストする方法についてはhttp://stackoverflow.com/a/37527210/3731501を参照してください。範囲外であるため、範囲内にあるかどうかをテストする方が簡単であることはすでに分かっています。スコープ/コントローラメソッドとして 'scroll'関数を公開すると、これはテスト容易性に役立ちます。 – estus
ああ大丈夫です。それを見てみましょう。ありがとう! – prem89