2014-03-24 42 views
0

我試圖對其中包含通配符的目錄進行存根(不知道影響文件夾命名方案的特定版本號)。我嘗試使用double()並遇到問題,所以我想也許這是一個兩步的過程...在我當前的迭代中,我試圖用通配符佔滿文件來填充文件,然後檢查該目錄是否存在。難道我做錯了什麼?Rspec:無法將數組轉換爲字符串

it "Return 1.5 is Linux OS and correct version" do 
    Facter.fact(:kernel).stubs(:value).returns("linux") 
    dir = Dir.glob("/opt/athena-*/bin/runner") 
    Dir.exist?(dir).and_return(true) 
    Facter::Util::Resolution.stubs(:exec).with('runner -version').returns("Version: 1.5") 
    Facter.fact(:version).value.should == "1.5" 
end 

回答

0

看起來像你需要存根Dir.exist?

Dir.stub(:exist?).with(dir).and_return(true) 

然而Dir.glob返回數組。也許你只想要第一個?:

dir = Dir.glob('/opt/athena-*/bin/runner').first 

我不清楚你在這裏測試什麼。

+0

我想看看目錄中是否有文件存在,但目錄是基於athena版本更改的,所以它可能位於'/ opt/athena-1.4/bin/runner'或'/ opt/athena-3.6/bin/runner' – user3455953

+0

仍然困惑 - 這與RSpec有什麼關係? – zetetic

+0

我有測試用例,需要查看該目錄是否作爲其測試的一部分存在。 – user3455953