我可以使用集成规范来捕获一个奇怪的jquery错误吗?

时间:2014-02-22 13:55:31

标签: jquery ruby-on-rails rspec

客户端代码我的应用程序遇到了您遇到的最严重的错误:间歇性错误。

基本上,我的系统会检索属于特定年龄段的用户。通过html按钮请求每个年龄组。单击该按钮时,将通过ajax请求检索用户,然后向下滑动区域以显示这些特定用户。

以下是单击按钮时触发的代码段:

$.getJSON('/users/' + age_group {

    $.each(data, function(index, value){
        users.push(value.name);
    });

    $(area).empty();

    $.each(users, function(index, value){
        $(area).append("<div> <span class = 'pull-left user unstyled'></span>" + value + '</div>');
    });

}).done(function(){
    $(area).stop().slideDown(200, function(){

        $('body').click(function(ev){   
            $(area).stop().slideUp(200)
        });
    });
});

令人沮丧的是99%的时间,$(area) div向下滑动显示正确的数量以显示所有用户(由slideDown功能提供),但这一次是它没有完全滑动,附加的用户弹出$(area) div并且整个布局中断。

我可以设计一个解决方法(可能overflow: hidden$(area);至少布局不会破坏)但事情是这个错误是间歇性的。真的是一百次。

我的应用程序使用capybara rspec selenium堆栈来运行集成规范,我已经在firefox中看到了几次bug错误(在相同的规范中它根本没有出现),所以可以使用堆栈来找出导致此错误的原因?您如何检测布局是否已损坏?所有元素都出现在页面上? 也许div高度?如果检索到x个结果,我可以测试'$(area)'div的高度以确保它的高度= y?该错误似乎是完全随机的。使用rspec,我可以创建某种html日志,数据库并保存屏幕截图(我认为你可以用selenium做到这一点)只有当高度是一个意想不到的值时?

这是行业惯例吗? Jquery是目前网页设计中最棘手的领域,然而谷歌搜索“jquery行为驱动的开发”并没有产生太大的影响。是否使用rspec来测试jquery代码?或者还有其他一些宝石吗?

公平地说,这不是问题的标题,但如果有人能告诉我他们为什么认为这种情况发生,我将永远感激不尽?这是一个jquery bug吗?已知slideDown方法偶尔不会滑下来吗? 是什么让我认为这是一个jquery错误的事实是,有时候$(area) div不仅不会滑下来,而是下滑到最后一组请求用户的高度,好像那样变量已被jquery以某种方式缓存。

结论:

  • 可以通过capybara rspec selenium检索和测试div的高度吗?
  • 使用rspec记录信息的正确方法是什么?
  • 我可以用capybara rspec selenium截取屏幕截图吗?
  • 如何以测试驱动的方式开发客户端代码?
  • 有没有人知道jquery的slideDown函数中的小故障?

0 个答案:

没有答案