【发布时间】:2014-02-25 04:58:14
【问题描述】:
我正在使用 QUnit 并尝试测试是否在滚动事件中修改了变量之一。简化的源代码示例如下:
$(window).on("scroll.singleJob",function(e) {
if($(window).scrollTop()>10) mycompany.somevar=10;
});
我的 QUnit 测试如下:
test("should attach panel once window scrolled down past certain point", function() {
$(window).scrollTop(1000);
ok(mycompany.somevar==10,"lozenges panel is sticky");
});
现在,我认为应该滚动窗口,运行测试并将mycompany.somevar 设置为10。问题是$(window).scrollTop(1000); 不做任何事情,并且代码在窗口未滚动时运行。我也试过QUnit.config.scrolltop = false;,但没有运气。
所以我的问题是如何滚动夹具窗口,以便在滚动窗口时运行测试?
【问题讨论】:
-
你解决过这个问题吗?在单元测试期间,我没有触发滚动事件。我试过手动发送它,但也没有用。
-
@BrettJ 我认为你只需要在 $(window).scrollTop(..) 调用之后同步调用回调。否则回调调用被放入队列并在当前线程完成后执行。看看这个,希望对你有帮助spirytoos.blogspot.com.au/2014/02/…
标签: javascript jquery unit-testing qunit