Chapter 21 Cucumber with Rails
メモ。どうやらRspec本が14版になってChapterがずれたみたい。12版だとChapter 20。
序文
一度通ったシナリオはregression testsとして使えるというような文章があった。そもそもregression test ってなんだろ。→調べた。
プログラムを変更した際に、その変更によって予想外の影響が現れていないかどうか確認するテスト。
リグレッションテストとは【regression test】(回帰テスト) - 意味/解説/説明/定義 : IT用語辞典
21.1 Step Definition Styles
Railsアプリで step definition を作る時、通常3つの step definition のスタイルを扱うことになる。
- Automated Browser
- Webrat と Selenium を使って実際のブラウザでアクセスするスタイル。実行に時間かかるしメンテも大変。
- Simulated Browser
- Webratを使ってアクセスするスタイル。JavaScriptのテストが出来ない。
- Direct Model Access
- Modelに直接アクセス。routing, controller, view をバイパスするので早いけど統合的ではない。
テストの速さと疎結合度合いは反比例。上記の三つの中でのおすすめは
- When と Then ではSimulated Browser
- Given に Direct Model Access。でもいくつか例外あり。ログイン時にセッションが必要なときなどにはSimulated Browserを使う。
- JavaScript や Ajaxのテストが必要なら When と Then に Automated Browser を使う。