[解決済み] railsでファイルアップロードをテストするには?
質問
JSONファイルを受け取り、そのJSONファイルを処理して、アプリケーションのユーザーメンテナンスを行う役割を持つコントローラがあります。ユーザーテストでは、ファイルのアップロードと処理は動作しますが、もちろん、テストでは、ユーザーメンテナンスのプロセスを自動化したいと思います。機能テストフレームワークでファイルをコントローラにアップロードするにはどうしたらよいでしょうか?
どのように解決するのですか?
この質問を検索しても、Stack Overflowでその質問、またはその答えを見つけることができませんでしたが、他の場所で見つけたので、SOで利用できるようにお願いしています。
railsフレームワークには、関数
fixture_file_upload
(
Rails 2
レイルズ 3
,
Rails 5
) を追加すると、フィクスチャディレクトリから指定されたファイルを探し出し、機能テストでコントローラのテストファイルとして利用できるようになります。使うには
1) テストでアップロードするファイルを fixtures/files サブディレクトリに置いてください。
2) ユニットテストの中で fixture_file_upload('path','mime-type') を呼び出すことで、テスト用のファイルを取得することができます。
例
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) アップロードのパラメータとしてfixture_file_uploadによって返されたオブジェクトを渡して、欲しいコントローラアクションを打つためにpostメソッドを呼び出します。
例
post :bookmark, :bulkfile => bulk_json
あるいは、Rails 5では
post :bookmark, params: {bulkfile: bulk_json}
これは、fixturesディレクトリにあるファイルのTempfileコピーを使用してシミュレーションされたポストプロセスを実行し、その後ユニットテストに戻るので、ポストの結果の検証を開始することができます。
関連
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】railsでカスタム設定変数を定義する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".