有效地对一个操纵DOM的AngularJS指令进行单元测试

时间:2013-06-04 23:18:06

标签: javascript unit-testing angularjs angularjs-directive

我正在使用AngularJS创建一个简单的指令,为任何链接添加平滑的滚动效果。

我在这里发表了我的作品:https://github.com/arnaudbreton/angular-smoothscroll 一切都在真实的环境中工作,但我无法弄清楚如何正确地进行单元测试。 我wrote a test无法通过,因为$window.pageYOffset未按预期递增。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我做了一个拉动请求,让你的测试运行。 https://github.com/bennyjo/angular-smoothscroll/commit/e660a8e1a4497907a9c74d9e359f2bbfa0b8326c

基本上问题是窗口没有可以滚动的空间。因此,无法滚动,测试失败。我在body元素上添加了一些高度,使窗口可以滚动。

$('body').height(window.innerHeight*2).append @target

我也在每次测试前重置了滚动位置。如果我们不这样做,第二次测试就会失败。

window.scrollTo(0, 0);