我进行了操作测试以检查右侧消息是否显示在Rails UJS / ajax模式中,错误404,500 ...以下是一个示例(下面的测试通过;我使用{{3存根ajax响应)
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
但是我没有测试当问题是超时时显示正确的消息:事实上我没有在rspec内部存根,ajax发送的响应是超时因为Chrome / webkit实际上不发送头文件也没有一个"容易"代码如500但发送状态(已取消)。
我尝试没有成功:
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)')
答案 0 :(得分:1)
您所谈论的超时没有http状态代码,因为超时特别是在该时间范围内未返回任何http状态代码。如果上游连接超时,代理可能会返回一些状态代码,但我认为这与您正在测试的内容不同。我在你的另一个问题上回答了关于如何让连接变得比你的超时设置更长的时间 - this one