2014-02-25 30 views
0

我正在使用QUnit并试图测试滚动事件是否被修改。简体源例子如下: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;但没有运气。 所以我的问题是如何滚动夹具窗口,以便测试将在窗口滚动时运行?

+0

你有没有解决过这个问题?在单元测试期间,我没有收到滚动事件。我试过手动调度它,但那也没有奏效。 – BrettJ

+0

@BrettJ我认为你只需在$(window).scrollTop(..)调用后同步调用回调。否则回调调用放入队列并在当前线程完成后执行。看看这个,我希望这会帮助你http://spirytoos.blogspot.com.au/2014/02/testing-windowscroll-with-qunitjasmine.html – spirytus

回答