2014-03-05 21 views
1

我有一個文件,我需要看它是否存在,當我運行一個存根,但該文件的位置在測試時不確定。我認爲它可能有效,但我認爲還有些不正確。基本上,實際的代碼運行Dir.glob(「/ opt/test - */bin/progname」)。看看那裏是否有文件。我是否需要將其分成多行?看到一個文件是否存在與Rspec

Dir.stubs(:glob).with("/opt/test-*/bin/progname").exists?returns(true)

回答

1

如果你存根出Dir.glob,那麼你將不會被測試系統能正常調用它。相反,你可以將文件實際上都是寫在本例中的測試位置設置:

before(:each) do 
    FileUtils.cp source, destination 
end 

後清理:

after(:each) do 
    FileUtils.rm destination 
end 
0

正確的變化對您要FO是: 迪爾.stubs(:glob).with(「/ opt/test - */bin/progname」)。and_return(double(「glob」,:'exists?'=> true)

您可以使用FakeFS gem模擬文件系統:

FakeFS.activate! 

File.open('/opt/test-this/bin/progname', 'w') { |f| f.write('something') } 
相關問題