我有一个方法,我想使用rspec和Mocha来测试。我的目标是剔除Dir.glob
以便返回一个简单的一个文件数组。该方法被定义为这样:使用Mocha剔除类方法
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
然后upload_dir
永远不会被调用。如果我在调用Dir.glob
之前加入调试器并调用Dir.glob
,那么我会看到我的一个零文件的数组,因此存根确实可行。但是,当测试实际调用方法Dir.glob("#{upload_dir}/*.pdf")
时,它正在尝试呼叫upload_dir
。
我使用Ruby 1.9.3,rspec 2.12.0和mocha 0.13.0。