Rspec:无法将Array转换为String

时间:2014-03-24 18:37:08

标签: ruby-on-rails rspec

我试图存根一个带有通配符的目录(不知道影响该文件夹命名方案的特定版本号)。我尝试使用double()并遇到问题,所以我想也许这是一个两步过程...在我当前的迭代中我试图用通配符对文件进行全局处理然后检查目录是否存在之后事实。我做错了吗?

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

1 个答案:

答案 0 :(得分:0)

好像你需要存根Dir.exist?

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

然而Dir.glob返回一个数组。也许你只想要第一个?:

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

我不清楚你要在这里测试什么。