我有一个我想用 rspec 和 Mocha 测试的方法。我的目标是存根Dir.glob
,以便只返回一个文件的简单数组。该方法定义如下:
def my_method
Dir.glob("#{upload_dir}/*.pdf").each do |file|
...
end
end
和测试:
it "ignores a file of no size" do
zero_file = File.expand_path("../fixtures/zero_size_file_12345.pdf", __FILE__)
Dir.expects(:glob).returns([zero_file])
...
end
问题是该方法upload_dir
不是我想在这里测试的东西,我假设如果我取消任何调用Dir.glob
thenupload_dir
将永远不会被调用。Dir.glob
如果我在调用和调用之前放入调试器Dir.glob
,那么我会看到我的一个零文件数组,所以存根肯定是有效的。但是,当测试实际调用方法Dir.glob("#{upload_dir}/*.pdf")
时,它会尝试调用upload_dir
.
我正在使用 Ruby 1.9.3、rspec 2.12.0 和 mocha 0.13.0。