2016-06-14 55 views
1

我有operationnal测试,以检查正确的消息显示在Rails UJS/ajax模态的错误404,500 ...这里低于一个例子(以下测试通过;我使用puffing billy gem末梢Ajax响应)水豚 - 识别阿贾克斯超时响应代码(rspec /水豚/ webkit /膨化比利)

it " displays correct modal message appears correctly after relevant 500 xhr/ajax response is received" do 
    visit deal_page_path(deal)  
    proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:code => 500) 
    first('a.button').click 
    wait_for_ajax 
    within('ul.messenger') do   
    expect(page).to have_content('So sorry, we had a bug, try again') 
    end 
end 

但我不测试显示正确的消息时,问题是超时:确实我不t stub在rspec里面,由ajax发送的响应是一个超时,因为Chrome/webkit实际上不会发送头文件,也不是像500那样的“简单”代码,而是发送状态(取消)。

enter image description here

我尝试没有成功:

proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:status => 'canceled')

proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:status => '(canceled)')

注:不知道它与同一铬/ WebKit的行为,但我看到了这个帖子:What does status=canceled for a resource mean in Chrome Developer Tools?

回答

1

tim没有http状态码你要说的是,因为超时特别是在那个时间范围内没有返回http状态码。如果上游连接超时,代理可能会返回一些状态码,但我认为这与您正在测试的不同。我回答了你的另一个问题,那就是如何让连接爆裂以便连接的时间超过你的超时设置 - Rails - How to stub a certain response time for a stubbed/fake http or ajax response