我有一个raw_responses数组使用web_mock,我想使用它们作为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])
如何重写最后一个字符串使用枚举器或像点击使用所有数组rr?
如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)
最后我这样做了
stub = stub_request(:get, "www.google.de")
rr.each { |rf| stub.tap { |s| s.to_return(File.new(rf)) } }