手動テストと同じくらいの厚み
想定している動きをしたときに想定したとおりに動くか。
また複雑なテストをかかければいけないようなコードは書かない、設計をしない
例えばフォーム入力の遷移のテストの場合
何も入力されないことがよくある、必須のものが入力される、(全ての項目が入力される)
の2~3がテストされていればよい。
必須のものを入力してちゃんと成功するか、必須のものが入力されていない場合失敗するかを見る。
境界値は見ない、複雑な挙動をした際に落ちるかどうかは気にしない
controllerのテストが書けない書きづらい等の場合は、大抵restfulになっていない設計に問題がある。
モック禁止/モックが必要なテストは書かない、もしくは機能を開発しない。
https://github.com/rubocop-rspec/rubocop-rspec
これ入れる
ちなみに統合テストは
featuresというフォルダに入れることが多い