これを参考にしてCarrierWaveを使った画像アップロード機能を実装してみた。 Rails 超お手軽な画像アップローダー CarrierWave の使い方 | Workabroad.jp ↑のサイトではCapybaraを使ったインテグレーションテストの書き方は載っているけど、コントローラのテスト方法が載っていなかったのでちょっとだけ詰まった。 言い換えると、今回はファイルを添付してアップロードするフォームのテストを書くというのと同義。 サンプル フォーム Userモデルには名前とプロフィール画像があって、更新フォームで名前とか画像をセットできることにする。 = form_for(@user, html:{ method: :put, role: "form" }) do |f| .form-group = f.label :image, "プロフィール画像" = f.file_fiel
# coding: utf-8 include ActionDispatch::TestProcess FactoryGirl.define do factory :user do name { Faker::Name.name } avatar { fixture_file_upload Rails.root.join('path', 'to', 'avatar.png'), 'image/png' } end end っていう風にすると良い。 こうすることで、avatar.pngをアップロードした状態のUserを生成できる。 最初ActionDispatch::TestProcessをincludeし忘れてて、「なんで動かないんじゃこいつ」ってなってたので、多分他にも困ってる人いるんじゃないかなぁ。 と思ってたら↓こういうやり方もあるらしい。 How to: Use test fixt
Searched for this question and could not find it, or its answer on Stack Overflow, but found it elsewhere, so I'm asking to make it available on SO. The rails framework has a function fixture_file_upload (Rails 2 Rails 3, Rails 5), which will search your fixtures directory for the file specified and will make it available as a test file for the controller in functional testing. To use it: 1) Put y
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く