Practical recommendation from Counterintuitive Rails pt. 2: controller tests are the lowest-hanging fruit — easy to write, stable, and they touch routes, services, models, and i18n transitively. For a new Rails application, cover every action: successful response for reads; correct side effects for create/update/delete. Then unit-test services and mutators where the core logic lives. Go deep with unit tests only for the core; go wide with controller/acceptance tests everywhere else.