Cucumberでファイルダウンロードのフィーチャを書く

公開日時 いたさん Wed, 13 Jan 2010 13:33:00 GMT

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