这就是我所拥有的:
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/