0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsチュートリアルまとめ 第3章

Last updated at Posted at 2021-04-28

第3章について

第3章では簡単なテストを実行しリファクタリングを行う。Railsではデフォルトでminitestがあるのでrails testコマンドですぐにテストを実行することが可能。

目次

1.railsコマンドの短縮形
2.rails generateについて
3.httpメソッドについて
4.テストについて
5.DRY
6.guard

#1. railsコマンドの短縮形
rails generateやrails serverなどのコマンドには短縮形がある。
rails serverrails s
rails consolerails c
rails generaterails g
rails testrails t
bundle installbundle

#2. rails generateについて
例えばrails generateコマンドでコントローラを生成すると自動的に関連ファイル(viewやテスト、ルートなど)を自動生成する。この機能は便利ではあるが、コントローラを削除したくなった場合にコントローラだけではなく関連ファイルも削除しなくてはならない。そういった場合にrails destroyコマンドを実行すると関連ファイルも含めて削除してくれる。モデルの作成についても同様。

#3. httpメソッドについて
httpメソッドはブラウザからサーバに送られるリクエストのこと。
主に以下の4つがよく使われる。

  • GET ... 最も使われるリクエストでweb上のデータを取得する時に使われる。
  • POST ... 何らかのリソースを生成する時や更新する時によく使われる。
  • PATCH ... リソースを更新する時に使われる。
  • DELETE ... リソースを削除する時使われる。

ちなみに一般のブラウザではGETとPOSTしかサポートしておらずPATCHとDELETEに関してはJavascriptなどであたかもPATCHやDELETEリクエストであるかのように偽装、送信して利用する。

#4. テストについて
テストは開発においてバグ追跡やリファクタリングの観点から重要であるが、テストを行う上で「テスト駆動(TDD)」にするか「一括テスト」にするか決めるのに以下のような基準で判断すると良いらしい。

テストを先に書く場合

  • アプリケーションのコードよりもテストこーどの方が短くシンプルになる場合
  • セキュリティ周りのエラーが発生した場合
  • バグを見つけてバグを再現する場合
  • リファクタリングする時

テストを後に書く場合

  • 動作の仕様が固まりきっていない場合
  • すぐに変更しそうなコードに対するテスト

railsではデフォルトでminitestというテストが有効になっている。
rails testでtestディレクトリ下に書かれているtest.rbファイルに基づいてテストを実行する。
実行時に結果が失敗するとエラーメッセージが表示されるのでそれを参考にコードの修正点を探す。

#5. DRY
DRYは"Don't Repeat Yourself"の略でRubyの原則。
情報の繰り返しを避けてよりコードや仕様を明確にするべし。

#6. Guard
Guardを使うとシステムの変更を監視し、テストを自動的に実行させることができる。
bundle exec guard initコマンドを実行すると統合テストとビューが更新される。その後Guardfileをrailstutorial.org/guardfileを参照し編集しbundle exec guardでguardで自動テストを実行する。
この際、ターミナルを占有するので新しいターミナルを開いて実行した方が良い。

参考文献

PUTかPOSTかPATCHか?
get,post,delete,putそしてmatchでルーティングを頑張る

DRY原則をもう一度 -コンカレント・エンジニアリング-

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?