rspec と Mocha を使用してテストしたいメソッドがあります。Dir.glob
私の目的は、1 つのファイルの単純な配列を返すためにスタブアウトすることです。メソッドは次のように定義されます。
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
と callの呼び出しの前にデバッガーを配置するとDir.glob
、1 つのゼロ ファイルの配列が表示されるため、スタブは確実に機能します。ただし、テストが実際にメソッドDir.glob("#{upload_dir}/*.pdf")
を呼び出すときは、次に を呼び出そうとしていますupload_dir
。
Ruby 1.9.3、rspec 2.12.0、mocha 0.13.0 を使用しています。