如何使用RSpec测试获取目录中的文件列表?

时间:2010-05-18 07:25:47

标签: ruby rspec

我对RSpec这个世界很陌生。我正在编写一个RubyGem,它处理指定目录和任何子目录中的文件列表。具体来说,它将使用Find.find并将文件附加到数组以供以后输出。

我想编写一个规范来测试这种行为,但是在伪造文件目录和存根Find.find等方面真的不知道从哪里开始。这是我到目前为止所做的很少:

it "should return a list of files within the specified directory" do
end

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用fakeFS gem。

答案 1 :(得分:2)

我认为您不需要测试库,但是如果您有类似

的方法
def file_names
  files = []
  Find.find(Dir.pwd){|file| files << file}
  ........
end

你可以存根find方法来返回一个像这样的文件列表

it "should return a list of files within the specified directory" do
  Find.stub!(:find).and_return(['file1', 'file2'])
  @object.file_names
end

或者如果你想设定期望,那么你可以做

it "should return a list of files within the specified directory" do
  Find.should_receive(:find).and_return(['file1', 'file2'])
  @object.file_names
end