開発現場で役立つ!Ruby on Railsでテストを実行する方法【初心者向け】
Ruby on Railsで行うテストの方法を解説しています。実際にユーザーに使ってもらうまでには何度かテストを行うはずです。それはバグなどを見つけるために行いますが、実際の開発現場でも役立つ知識ですので覚えておきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
RubyのフレームワークのRuby On RailsなどWebアプリケーションを作る言語ではテストがとても重要になってきます。
プログラミング言語でのテストと言われると皆さん馴染みが薄いかもしれません。そこで今回はテストについて解説していきたいと思います。
なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。
今回はRuby on Railsでテストを実行してみよう。
田島メンター!!テストとはどのようなことを行うんですか〜?
そのURLにアクセスしたときに、それぞれのファイルが問題なく実行できるかというのを確認することができるんだ。これによって、実際に起動したときにおかしな動作をする部分を前もって見つけることができるよ。
なるほど、どの部分で何が間違っているかというのを一覧で見れるという感じでしょうか?便利そうです!
テストとは
テストと聞くと皆さんが一番初めに思い浮かべるのは、学校のテストのようなものでしょう。Ruby on Railsのテストでもすることは同じで、作ったwebサービスが正しく動くかどうかを試験します。ただその試験問題を作るのは皆さんで、その試験問題をパスさせるために、プログラミングを改良していくという手順をとります。
実際にテストを実行してみる
それでは実際にテストを実行してみます。今回はPagesコントローラーにindexアクションとhomeアクションを追加してそこでテストを行います。
$rails g controller Pages index home
できたファイルを見てみると下のようなテストファイルができていることが確認できます。
create test/controllers/pages_controller_test.rb
中身にはテストがすでに少し記述されています。
require 'test_helper' class PagesControllerTest < ActionController::TestCase test "should get index" do get :index assert_response :success end test "should get home" do get :home assert_response :success end end
get:indexはそのアクションを取得、assert_responseでちゃんとアクションが返ってきているかを確認しています。
testフォルダの中身を確認してみようか。
普段触らないですが、こんなファイルもあったんですね。
次は実際にテストを実行するよ。ターミナルで以下のコマンドを入力しよう。
これがテストの中身です。テストを実行するには
$bundle exec rake test
とターミナルで実行してください。
最後に下のように表示されるとテストは成功です。
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
今回は簡単なテストの実行方法について解説しました。テストをしっかりと記述することで思わぬバグを検出することができます。是非理解を深めておくようにしましょう。
ここでもしエラーがあった場合はEと表示され、それ以下に具体的なエラー内容が表記されるんだ。エラーの原因を特定する際に役立つよ。
実行してから気付いてやり直すより、ずっといい方法ですね。
そうだね。何か新しい動作を追加したりした場合は一度テストして、おかしな箇所がないかチェックするようにしよう。
そうですね、心がけます。ありがとうございました!
[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。