Cucumberでファイルダウンロードのフィーチャを書く
Cucumberでファイルアップロードのフィーチャは、標準のステップ定義にもあるのですが、ファイルのダウンロード機能を書こうとして、ずいぶんと悩んでしまいました。
ApplicationController::Responseを返すresponseメソッドを調べていて、ようやくbinary_contentというメソッドを発見。
これを使えば、下記のようなステップ定義ができますね。
Then /^ダウンロードしたファイルは"([^\"]*)"と同じこと$/ do |file_path|
File.open(file_path, "rb") do |f|
response.binary_content.should == f.read
end
end

