【166日目】【1日20分のRailsチュートリアル】【第11章】演習の3.
今日は「11.6 演習」の3.から。
11.6 演習
3.リスト11.69に示すテンプレートを参考に、11.4で実装した画像アップローダーをテストしてください。テストの準備として、まずはサンプル画像をfixtureディレクトリに追加してください (コマンド例: “cp app/assets/images/rails.png test/fixtures/”)。
(省略)
問題文面が長い…!
まずサンプル画像をfixtureディレクトリに追加する。
$ cp app/assets/images/rails.png test/fixtures/
紛らわしいエラーを回避するためには、CarrierWaveの設定を変更し、テスト環境では画像リサイズをしないようにする必要があるので、リスト11.70に示す設定ファイルを使ってください。
紛らわしいエラーって何のことなんだろう…。
とりあえずテスト環境では画像リサイズしないようにする。
$ touch config/initializers/skip_image_resizing.rb
でファイルを生成して下記のように更新。
config/initializers/skip_image_resizing.rb
if Rails.env.test? CarrierWave.configure do |config| config.enable_processing = false end end
いよいよテスト作成かな。テンプレートを参考に穴埋めしてみた。
test/integration/microposts_interface_test.rb
test "micropost interface" do : assert_select 'input[type=file]' : # 有効な送信 content = "This micropost really ties the room together" picture = fixture_file_upload('test/fixtures/rails.png', 'image/png') assert_difference 'Micropost.count', 1 do # post microposts_path, micropost: { content: content } post microposts_path, micropost: { content: content, picture: picture } end assert assigns(:micropost).picture? :
合ってるか分からないけどテストは通った。のでよしとしよう。。。。
$ bundle exec rake test 60 tests, 314 assertions, 0 failures, 0 errors, 0 skips
今日の学習時間は【23分】。
次は「第12章 ユーザーをフォローする」から。いよいよ最後の章だー!