ぞえの技術めも

Ruby on Rails勉強中

【186日目】【1日20分のRailsチュートリアル】【第12章】演習の2.

Ruby on Railsチュートリアル(第3版)

今日は「12.5 演習」の2.から。

12.5 演習

2.Homeページに表示されている1ページ目のフィードをテストしてください。リスト12.49はそのテンプレートです。
CGI.escapeHTMLでHTMLのエスケープ処理を使っている点に注目して、なぜこれが必要なのか考えてみてください。
(試しにエスケープ処理を外して、HTMLのソースコードを注意深く調べてください。マイクロポストの内容がおかしいはずです。)

フィードのテストってどうすればいいんだろうと思ってたら2個目がそうだったのか…!

テンプレートを参考に書いてみたけどこんな感じ…??

test/integration/following_test.rb

  test "feed on Home page" do
    get root_path
    @user.feed.paginate(page: 1).each do |micropost|
      assert_match CGI.escapeHTML(micropost.content), response.body
    end
  end

とりあえずテストは通りました。

$ bundle exec rake test
76 tests, 445 assertions, 0 failures, 0 errors, 0 skips

(試しにエスケープ処理を外して、HTMLのソースコードを注意深く調べてください。マイクロポストの内容がおかしいはずです。)

エスケープ処理を外したときに出てたエラーの中身の一部はこんな感じだったけど、これのこと…??

<span class=\"content\">\n    Writing a short test\n    \n  </span>

記号があるとエスケープ処理必要かな、って思ったけど記号なくても必要に見える。
演習1.のプロフィールのテストでは必要なかったのになんでなんだろう。。。フィードだから?

最後に疑問を残したままこれにて「Ruby on Railsチュートリアル(第3版)」終了です。
お疲れ様でした!

今日の学習時間は【19分】