使用Ruby测试网络超时和错误

时间:2013-12-30 04:54:10

标签: ruby-on-rails ruby api wrapper

我正在编写一个flakey第三方API的包装器,并希望通过某种方式来测试我的代码的错误处理。

当人们想要测试以下内容时,他们会做什么:

  • API响应各种http代码(400-599)
  • 连接超时(主机已关闭,dns问题等)

有没有正确的方法呢?现在我只是使用测试主机,添加mod_rewrite规则,如:

RewriteRule ^500.html$ / [R=500,L,NE]
RewriteRule ^501.html$ / [R=501,L,NE]
RewriteRule ^404.html$ / [R=404,L,NE]

然后我确保我的代码正确处理这些用例,但感觉不对,并且无法测试超时错误。

2 个答案:

答案 0 :(得分:0)

如果你要测试那样的路线,我强烈建议将rspec和capybara结合起来。 rspec框架提供了很大的灵活性,高用户群为您提供了大量的入门机会。

答案 1 :(得分:0)

我建议您使用mocha(rSpec中的默认值),rr,flexmock等来模拟/存根api请求。还有用于处理HTTP请求的特殊模拟库,但我不确定您是否可以模拟整个响应或仅体。