Rails テストについて 1 (概要編)


はじめに

テストに拒否反応があるので、まずは整理したいと思います。
少しづつ記事を書いていきます。

もうすでにご存知の方、省略の仕方等ご存知でしたら、ご助言願います。

テストとはなんぞや?

  • プログラムが意図した通りに動くことを確かめること

大切なん?

  • 超大切と学びました。
  • テストコードを書かなければ、プログラムは想定していなかった動きを見せる可能性が高くなる。

何が起きてまうの?

例えば、毎日1万人が訪れるHPのシステムに、新機能を追加することになりました。
コードが完成し、いよいよ実際に動作しているHPに適用します。
しかし、テストコード無しで、つまりプログラムが想定していない動きをしました。(バグがあった・・・)
そのまま本番のHPに適用してしまったせいで、HPが停止してしまいました。
そして、毎日利用している1万人ものユーザーが迷惑を被ります。
そのことによる金銭的な損失や信用の喪失は、計り知れないものに・・・。
 

だから必要やねん!

  • テストは、上記のような事態を防ぐために必要となる。
  • あらゆるケースを想定し、「バグがないことを確かめてから」本番に適用する。
  • それこそがテストコードを書く意義なのです!

ということは、いっぱい書かなあかんのか?

  • Railsの場合、モデルやコントローラーのクラス1つにつき、1つのテストコードを書く。

ヒェ〜 Σ(゚д゚lll)

メリットもあんねんで!

仕様漏れを減らせる

  • 対象のメソッドの作成目的と挙動を洗い出す。
  • 結果的に仕様を良く確認することになり、バグを引き起こす仕様漏れを少なくすることができる。

リファクタリングや機能追加がしやすくなる

  • 一度テストを通過してしまえば、最終的な結果を維持しリファクタリングをするのが簡単になる。
  • 機能追加の際も、従来の箇所は間違いなく動いていることを確認できているので、その結果を崩さないようにするだけで安全に実装することができる。

楽しくコードを書ける

  • テストを通過するという快適な体験を重ねることで、コードを書く作業が楽しくなる。

書いたのはいいですが、テストが楽しい・・・? (¬_¬)

意識変えるで!

とりあえず、必要なGemのインストール!

Gemfileに追記

gem 'rspec-rails'

その後、bundle installです。

テスト編、続きます・・・(まだ気持ちが・・・)

さいごに

日々勉強中ですので、随時更新します。
皆様の復習にご活用頂けますと幸いです。