ぞえの技術めも

Ruby on Rails勉強中

【166日目】【1日20分のRailsチュートリアル】【第11章】演習の3.

Ruby on Railsチュートリアル(第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章 ユーザーをフォローする」から。いよいよ最後の章だー!