RSpecを使っていて、ファイル読み込みをスタブ化してテストする方法になかなか辿りつけなかったので、残しておく。 テストコード describe 'read_foo' do it '指定名称のファイルを開き、コメント行以外を云々' do lines = <<EOS #コメント (ファイルの内容) EOS File.should_receive(:open).with('filename', 'r').and_return(StringIO.new(lines)) result = Foo.read_foo('filename') ... end end 本体 class Foo def self.read_foo(fname) File.open(fname, "r").each { |line| next if line =~ /^#/ ... } end end ただし以下のようにop