7章
- モデルに対するテスト
- E2E(エンドツーエンド)テスト
- システムスペック
- リクエストスペック
テストがない状態から初手で書くならE2E推奨
- メリット
- 外から見た動きを書けばいいから書きやすい
- 網羅的なテストなのでテストカバレッジを効率よく広げられる
- アプリケーションへの理解が深められる
- デメリット
- 実行速度が遅い
- 部品ごとの仕様や正しく動いているかはわからない
factory_bot
-
乱数を同じにしてテストを行う方法
Randomized with seed 20966
というように表示されるので、--seed 20966
とseedオプションを付けることで、テスト実行番号を指定できる。
実行順序・seedデータが固定される。 -
OmniAuthのモック
|
|
Sorceryのテスト用ヘルパー↓
sorcery/lib/sorcery/test_helpers/rails at master · Sorcery/sorcery
RSpecのコントローラスペックは、ビューとrack middlewareを通過せず、コントローラクラスだけテスト実行する。
リクエストスペックでは、コントローラ、ビュー、reck middlewareが実行される。
システムスペックは、ルーティング、ビュー、reck middleware、JavaScriptの実行とアプリケーション全体をブラウザを使って実行する。
スタブ、ダブル、モック
ダブル
オブジェクトの代わりをするオブジェクト
スタブ、モック
ダブルの一種。
スタブはメソッドの戻り値を変更できるが、モックは加えてそのメソッドが呼び出されたかどうか確認できる。