質問

Attachment_Fuを使用して、機能するファイルのアップロード機能の仕様を作成しようとしています。ただし、テストのために著者から指定されたサンプルコードでは、私に要求する必要があります action_controller/test_process アクセスできるように ActionController::UploadedStringIO クラス。私は以前にRails 2.xでこれを使用しましたが、Rails 3の場合、 test_process ファイル。

Rails 3のファイルアップロード機能をテストするにはどうすればよいですか?

役に立ちましたか?

解決

Rails3とRSPECでfixture_file_uploadを使用することができました。

追加しました include ActionDispatch::TestProcess spec_helper.rbに、次のようなものをfiledataとして渡しました。

fixture_file_upload(Rails.root.join("spec/support/test.png"), 'image/png')

編集:アップグレードしたものは、これの動作を変更して、常にフィクスチャーパスを含めるため、fixture_file_uploadの代わりにこれに切り替えました。

Rack::Test::UploadedFile.new(Rails.root.join("spec/support/test.png"), 'image/png')

他のヒント

私は今、Rails 3のファイルのアップロードのテストに取り組んでいますが、私の答えがどれほど役立つかはわかりません。テストを変更することは可能ですか?個人的には、キュウリ/カピバラアプローチを使用しています。 CapybaraのDSLが定義します

attach_file('Image', '/path/to/image.jpg')

個人的には、これはStringioオブジェクトと対話するよりもテストするより良い方法のようです...自由に反論してください。

これは、Rails 3で見つけるのがややトリッキーでした

それでも使用できます fixture_file_upload 機能ですが、追加する必要があります。

include ActionDispatch::TestProcess

テストケースに。

これはRSPECではまったく動作しませんでした。ファイル自体をつかみ、ファイルを直接投稿する必要がありました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top