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

Effectively unit test an AngularJS directive which is manipulating the DOM

本文关键字:指令 单元测试 AngularJS 操纵 DOM 有效地      更新时间:2023-09-26

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

我已经在这里发表了我的作品:https://github.com/arnaudbreton/angular-smoothscroll一切都在一个真实的上下文中工作,但我不知道如何正确地进行单元测试。我写了一个不能通过的测试,因为$window.pageYOffset没有按预期增加。

谢谢你的帮助!

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

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

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

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

window.scrollTo(0, 0);