AWDwR 12.2まで

さーて、いよいよテストです。Chapter12はMike Clarkという人が書いてるんだけど、英語わかりにくい…。

テストにはモデルのテストとコントローラのテストがあって、モデルのテストコードはtest/unit以下に、コントローラのテストコードはtest/functional以下に置くよ。generateした時に既にスケルトン作っといたからそれ使ってね。

で、まずはモデルのテストから。テスト用のDBが必要なんだけどサボってテーブル作ってなかったよ…orz。
しかーし、No worries

rake clone_structure_to_test

とすると開発用DBのテーブルと同じ物をテスト用DBに作成してくれるぢゃないですか! Wow! 今までで一番感動したよ!!

で、fixture(テストデータね。YAMLで書く。)を用意しておくとテスト時に勝手にDBに放り込んでくれる。このfixtureのデータはテストケースからインスタンス変数で参照できるのでそのままテストの期待値として使えるし、fixtureにはrubyのコードが書けるから動的にテストデータを変えられるし、いたれりつくせりだわ。ちなみにカスタムアサーションはtest_helper.rbに書いとけ。

次回、コントローラのテストの巻。