0

web_mockを使用するraw_responsesの配列があり、それらをto_returnメソッドの引数として使用し、stub_requestメソッドにチェーンします

#["file1.txt", "subfolder/file_n.txt", "awsome_name.txt"]
rr = Dir.glob(File.expand_path("../../markups/*.txt", __FILE__))
stub_request(:get, "www.google.de").to_return(rr[0]).to_return(rr[1]).to_return(rr[2])

列挙子またはtapのようなものを使用して最後の文字列を書き換えてrrのすべての配列を使用するにはどうすればよいですか?

4

2 に答える 2

0

READMEで説明されているように、複数の応答をto_return引数としてメソッドに渡すだけです。基本的に、次のようなものが必要です。

stub_request(:get, "www.google.de").to_return(rr[0], rr[1], rr[2])

しかし、そのように配列の値をリストするのは少し面倒なので (また、可変数の応答では機能しません)、代わりに Ruby の splat 演算子を使用する必要があります。

responses = Dir[File.expand_path("../../markups/*.txt", __FILE__)].map{|f| File.read(f)}
stub_request(:get, "www.google.de").to_return(*responses)
于 2012-12-29T14:47:40.803 に答える
0

最終的に私はこのようにしました

stub = stub_request(:get, "www.google.de")
rr.each { |rf| stub.tap { |s| s.to_return(File.new(rf)) } }
于 2012-12-29T14:48:00.480 に答える