Ruby on Railsでファイルのアップロードの機能テストを行うにはActionController::fixture_file_uploadを使用します。
fixture_file_upload(path, mime_type = nil, binary = false)
Shortcut for ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + path, type):
fixture_file_uploadの最初の引数は、アップロードするファイルの場所を指定します。
基準となるディレクトリは「Test::Unit::TestCase.fixture_path(RAILS_ROOT/test/fixtures)」です。
「RAILS_ROOT/test/fixtures/files/spongebob.png」にファイルがある場合は、引数は「/files/spongebob.png」になります。
2番目の引数は、content_typeを指定します。
3番目の引数は、trueにした場合はバイナリモードになります。たぶん。
post :change_avatar, :avatar => fixture_file_upload('/files/spongebob.png', 'image/png')