这就是我所拥有的:

it "should be able to get a valid directory path" do
   @asset.some_file_path.should == "/something/test.jpg"
end

问题是如果没有现有文件,some_file_path返回“/not_here_yet.jpg”。
def some_file_path
  if File.exists(self.my_image_path)
    return my_image_path
  else
    return "/not_here_yet.jpg
  end
end

我真的不想在测试中创建一个新文件。我有办法伪造文件的存在吗?

我在想以下方面的事情:
it "should be able to get a valid directory path" do
   AwesomeFakeFileCreator.create(@asset.my_image_path)
   @asset.some_file_path.should == "/something/test.jpg"
end

这可能吗?我该怎么做?

编辑:我看了一下FakeFS,但我不确定它是否回答了我的问题

最佳答案

你可以做一些事情

it "should be able to get a valid directory path" do
  File.stub!(:exists?).and_return(true)
  @asset.stub!(:my_image_path).and_return("/something/test.jpg")
  @asset.some_file_path.should == "/something/test.jpg"
end

关于ruby-on-rails - 如何使用rspec模拟/伪造文件的存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2236147/

10-16 17:04