В одном распространенном случае приложение имеет пользователей и группы, только пользователь, являющийся администратором группы, может добавлять / удалять пользователей. У меня могло бы быть действие контроллера, которое идет "@ group.add_member, если current_user.is_admin"
Кажется, что тестирование этого поведения должно быть частью модульных тестов модели, потому что это один кусок кода, отвечающий за одну задачу. Но я не уверен, как лучше учитывать тот факт, что правильность этого метода зависит от контроллера. Я думал:
- Один из вариантов - переопределить метод модели, чтобы получить дополнительный параметр для current_user, но
это кажется немного уродливым.
- Другой вариант - протестировать просто «add_user» в модели и проверить поведение «is_admin» в
тест контроллера вместо этого, хотя я думал, что это проблема модели.
- Еще один вариант - включить этот метод в модель User.
вместо группы, поэтому вызываться как: "current_user.add_member_to_group" <- звучит как
ответственность за эту функциональность должна быть в модели группы
хотя. </li>
Мысли