我有一系列raw_responses 使用web_mock我想使用作为 to_return 方法的args 并链接到 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 的所有数组?
答案 0 :(得分: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)
答案 1 :(得分:0)
stub = stub_request(:get, "www.google.de")
rr.each { |rf| stub.tap { |s| s.to_return(File.new(rf)) } }