rails 独学して軽くにちゃんまとめつくる

rails テストのときにきをつけることの問いかけ

rials tutorialでtestを勉強したが、結局どんなことを確認してるのかをまとめて自分でも再現できるようにした。

 

 

まず行きたいページにいけ。 get

個別の値は変数で定義しておいたか?

入力したい値はあるか?あるならpost

探したいリンクはあるか?あるならassert_select "a[href="?"], (パス名)

その個数を調べたいか? 上のに count: 0とか2とか

リダイレクトさせる必要があるか? assert_redirected_to @user

別のページに移動したいか?したいならassert_redirected_to @user

ちゃんとそのページに行けてるか? assert_template 'users/show'

 自分でヘルパーで定義する必要があるか? ログインログアウト

 

 

テストを忘れている疑いのあるコードブロック内にわざと例外発生を仕込むという手法を好んで使います。そのコードブロックがテストから漏れていれば、テストはパスしてしまうはずです。コードブロックがテストから漏れていなければ、例外が発生してテストが中断するはずです。

ーーーリスト8.5.2の下

 

 

本書における主要なテストは、コントローラテスト (この節より)、モデルテスト (6より)、統合テスト (7より) の3つです。 

 

テスト駆動開発の意味がわからなかったがやっとわかった。

普通の順序なら

①つけたい機能がおもいうかぶ

②コードをかく

③テストする

とするが、テスト駆動開発

①つけたい機能がおもいうかぶ

②テストをかく

③コードをかく

というように逆になっている。答えをさきに書いて問題にとりかかるイメージ。具体的にはrails tutorial 3.3.2 でやってる。