ぞえの技術めも

Ruby on Rails勉強中

【13日目】【1日20分のRailsチュートリアル】静的なページの調整~テストコード実行

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

今日は「3.2.2 静的なページの調整」から。

3.2.2 静的なページの調整

HomeページとHelpページの内容を少し書き換え。
ただのHTMLです。

app/views/static_pages/home.html.erb

<h1>Sample App</h1>
<p>
  This is the home page for the
  <a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
  sample application.
</p>

app/views/static_pages/help.html.erb

<h1>Help</h1>
<p>
  Get help on the Ruby on Rails Tutorial at the
  <a href="http://railstutorial.jp/help">Rails Tutorial help section</a>.
  To get help on this sample app, see the
  <a href="http://railstutorial.jp"><em>Ruby on Rails Tutorial</em>
  book</a>.
</p>

表示も問題なし。

Homeページ f:id:kt_zoe:20160727123732p:plain

Helpページ f:id:kt_zoe:20160727123807p:plain

チュートリアルには書いてないけどページ変更をコミットしておく。
(こまめにコミットしておきたい派)

$ git add -A
$ git commit -m "Change a Static Pages"
$ git push -u origin static-pages

3.3 テストから始める

次はAboutページの追加だが、ここで「自動化テスト」について説明。

テストを作成するような開発は普段しないのでこの辺は一から学習することになるなぁ。
説明読んだけどイマイチピンとこない。。。
実際にテスト書いてみたら分かるかな?

3.3.1 最初のテスト

Aboutページ追加はテストコードを先行で書く方針。

ただその前にHomeとHelpのテストコードを確認する。
rails generate controller実行時点でテストコードも自動で生成されていたそう。

test/controllers/static_pages_controller_test.rb

require 'test_helper'

class StaticPagesControllerTest < ActionController::TestCase

  test "should get home" do
    get :home
    assert_response :success
  end

  test "should get help" do
    get :help
    assert_response :success
  end
end

HomeページとHelpページに対してGETリクエストしたらレスポンスはsuccessになるはず、なテストらしい。
rakeコマンドでテスト実行。

$ bundle exec rake test
RubyDep: WARNING: Your Ruby is outdated/buggy. (To disable warnings, set RUBY_DEP_GEM_SILENCE_WARNINGS=1)
RubyDep: WARNING: Your Ruby is: 2.3.0 (buggy). Recommendation: install 2.3.1.
DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /usr/local/rvm/gems/ruby-2.3.0/gems/sass-rails-5.0.2/lib/sass/rails/railtie.rb:57)
DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /usr/local/rvm/gems/ruby-2.3.0/gems/sass-rails-5.0.2/lib/sass/rails/railtie.rb:58)
RubyDep: WARNING: Your Ruby is outdated/buggy. (To disable warnings, set RUBY_DEP_GEM_SILENCE_WARNINGS=1)
RubyDep: WARNING: Your Ruby is: 2.3.0 (buggy). Recommendation: install 2.3.1.
DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /usr/local/rvm/gems/ruby-2.3.0/gems/sass-rails-5.0.2/lib/sass/rails/railtie.rb:57)
DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors
 (called from block (2 levels) in <class:Railtie> at /usr/local/rvm/gems/ruby-2.3.0/gems/sass-rails-5.0.2/lib/sass/rails/railtie.rb:58)
/home/ubuntu/workspace/sample_app/db/schema.rb doesn't exist yet. Run `rake db:migrate` to create it, then try again. If you do not intend to use a database, you should instead alter /home/ubuntu/workspace/sample_app/config/application.rb to limit the frameworks that will be loaded.
Run options: --seed 45452

# Running:

..

Finished in 1.027363s, 1.9467 runs/s, 1.9467 assertions/s.

2 runs, 2 assertions, 0 failures, 0 errors, 0 skips

テストは問題なし。
めっちゃWARNING出てるけどやっぱりそっとしておく。
Rubyとかのバージョンが指定できてないのかな。。。。

テスト通ったので今日はここまで。

今日の作業時間は【28分】

次は「3.3.2 Red」から。