FakeFS和CSV.open规范测试引发ArgumentError:错误的参数数量(3表示2)

时间:2013-01-15 04:44:25

标签: ruby csv rspec

我在使用fakefs测试CSV.open并引发ArgumentError时出现问题:参数数量错误(3为2)

规范代码如下:

ruby​​版本是jruby 1.7.1(1.9.3p327)

fakefs版本是0.4.2

要求'fakefs / safe'

 it 'should pull offers and save them into file' do
    FakeFS do 
      extractor.process(affiliate_ids)
      File::size(FILE_NAME).should > 0
    end
  end

ruby​​代码如下:

class Extractor
  def process(affiliates)
    save(ds)
  end

 # saves all the buy URLs to a text file
  def save(ds)
    @@logger.info "Writing offers to file #{FILE_NAME}"

    CSV.open(FILE_NAME, "w") do |csv|
      ds.each do |row|
        buy_url = row[:buy_url]
        csv << [row[:name], row[:offer_id], buy_url]
      end
    end

  end
end

有谁知道导致这个问题的原因是什么? 提前致谢

David Wu

1 个答案:

答案 0 :(得分:1)

问题在JRuby中得到修复。在这里检查细节。 https://github.com/defunkt/fakefs/issues/172

-Alex