Open-Uri open()がSocketErrorなどのタイムアウトを起こしたり例外を発生させたりすると、しかし、私はこれに問題があります。RSpecとOpen-URI SocketError/TimeoutErrorを発生させる方法を教えてください
@obj.should_receive(:open).with("some_url").and_raise(SocketError)
そして私は、オープン-uriの使用している私のオブジェクトの一部:ここ
は(SocketError用)私のスペックはある
begin
resp = open(url)
resp = resp.read
rescue SocketError
something = true
end
しかし、このような状況でスペックはと失敗しますnil.read
エラーです。
open()
をtimeout() {}
でラップすると、TimeoutErrorをシミュレートしようとしていた前回のこの問題は、今週の2回目です。その時点で、実際にタイムアウトが発生しました。クラスを開く。私はすることができますこれは明らかに無効なURLを呼び出すことによってSocketErrorをスローする原因になるが、私はRSpecでこれを模擬する正しい方法があると確信しています。
アップデート:私はURLを再しようとしたときSocketError、and_raise(SocketError)の部分がうまく働いた後私は明らかに夜にその遅く明確に考えていませんでした、エラーが実際にしました。