我試圖存根File.open爲了測試我有讀取CSV文件的方法。與Rspec Stubbing File.open
這裏的模型:
class BatchTask
def import(filename)
CSV.read(filename, :row_sep => "\r", :col_sep => ",")
end
end
這裏的規範代碼:
let(:data) { "title\tsurname\tfirstname\rtitle2\tsurname2\tfirstname2\r"}
let(:result) {[["title","surname","firstname"],["title2","surname2","firstname2"]] }
it "should parse file contents and return a result" do
File.stub(:open).with("file_name","rb") { StringIO.new(data) }
person.import("file_name").should == result
end
然而,當我試圖做到這一點,我得到(堆棧跟蹤):
Errno::ENOENT in 'BatchTask should parse file contents and return a result'
No such file or directory - file_name
/Users/me/app/models/batch_task.rb:4:in `import'
./spec/models/batch_task_spec.rb:10:
Finished in 0.006032 seconds
我我一直在抨擊這個人,並且無法弄清楚我做錯了什麼。任何幫助將不勝感激!
stacktrace加上確切的錯誤 – Sly 2012-07-27 18:39:33