『Ruby on Rails 5 アプリケーションプログラミング』を学習する31

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

序文

Ruby on Rails 5 アプリケーションプログラミング」学習31日目。
テスト編終了。
まだ手のついていない部分もあるんですが、とりあえずここまででこのシリーズはひとまず終了します。
せっかくなのでと、ブログのスタイルもいろいろ試行錯誤しています。

GitHub

github.com

進捗

  • 第8章 テスト
    • 8.3 Functionalテスト
    • 8.4 Integrationテスト
      (学習時間:2.5時間)

コード実装部分(一部)

  • シンプルなFunctionalテストの例
    \test\controllers\hello_controller_test.rb
require 'test_helper'

class HelloControllerTest < ActionDispatch::IntegrationTest
  # Functionalテストの例
  test "list action" do
    # GETのHTTPリクエストを生成
    # POSTなども利用できる
    get '/hello/list'
    # インスタンス変数@booksを取得し、要素数が10であるかを検証
    assert_equal 10, assigns(:books).length, 'found rows is wrong.'
    # 正常なステータスコード(:successは200)が返されたかを検証
    assert_response :success, 'list action failed.'
    # 正常なテンプレートが選択されたかを検証
    assert_template 'hello/list'
  end
  # 省略
end

実行結果

  • テスト実行結果 f:id:yjkym:20180423155116p:plain

感想

今日はFunctional(機能)テスト、およびIntegration(統合)テストについて。
Functionalテストとはコントローラーの動作を確認するテスト、Integrationテストとは複数のコントローラーにまたがったユーザーの操作を擬似的に発生させて行うテストのこと。

今まであんまりテストとか具体的に考えたことなかったので、内容が理解できるか不安だったんですが、簡潔にまとまっていて理解しやすかったと思います。

明日、書籍についての感想をまとめて次の参考書の勉強に進みたいと思います。
GW? なにそれ。

カロリーメイトください。

BGM

GOOD MUSIC / KICK THE CAN CREW

www.youtube.com