Đây là những gì tôi có:Làm thế nào tôi có thể giả lập/giả mạo sự tồn tại của một tập tin bằng cách sử dụng rspec?
it "should be able to get a valid directory path" do
@asset.some_file_path.should == "/something/test.jpg"
end
Vấn đề là lợi nhuận some_file_path "/not_here_yet.jpg" nếu không có tập tin hiện có.
def some_file_path
if File.exists(self.my_image_path)
return my_image_path
else
return "/not_here_yet.jpg
end
end
Tôi thực sự không muốn tạo tệp mới trong các thử nghiệm của mình. Có cách nào để tôi giả mạo sự tồn tại của tập tin?
Tôi đang nghĩ đến điều gì đó trong dòng:
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
Đây có phải là có thể? Làm thế nào tôi có thể làm một điều như vậy?
Edit: Tôi nhìn một chút tại FakeFS nhưng tôi không chắc chắn nó trả lời câu hỏi của tôi
Bạn có thể chi tiết một chút về việc này đang làm gì không? – marcgg
Dòng đầu tiên phân tích rằng tệp tồn tại trả về true và dòng thứ hai đang đưa ra phương thức my_image_path trên đối tượng asset và trả về đường dẫn tệp, phương thức some_file_path của bạn sẽ trả về trong trường hợp đó, tức là toàn bộ ví dụ cụ thể là về. Tóm lại, trả về đường dẫn nếu nó tồn tại. – nas
Không phải là bạn phải giữ cho tôi hạnh phúc hay gì cả - tôi không hỏi câu hỏi - nhưng tôi sợ rằng tôi không hiểu điều đó. – Shadowfirebird