Нужны ли автоматические функциональные тесты для контроля доступа?
Использую RBAC, есть 3 роли и много-много разрешений, а также пара правил, нужно все это дело отслеживать чтобы не сломалось в процессе изменений. Хочу понимать, используют ли автоматические тесты для таких задач? По идее юнит тесты однозначно тут не подходят, функциональные вроде бы похожи по назначению.
Как примерно можно реализовать проверку доступа?
1. Я создал данные (ActiveFixture dataFile) для 3 пользователей (по количеству ролей)
2. Создал консольный RbacController, в котором делаю все нужные RBAC операции (создание, присвоение и т.д.).
3. Создаю функциональный (unit ?) тест.
Вот тут вопрос: данные в базу может загнать unit тест, у него для этого есть haveFixtures, а вот проверить роут - задача для функционального теста, не понимаю, к какому типу относится моя ситуация?
Еще вопрос: как из теста дернуть action консольного контроллера? Ну то есть аналог команды php yii rbac/init
Еще вопрос: Как делать
$I->amOnPage('...');
от пользователей определенных ролей? Ну то есть нужно от каждой роли по очереди сделать проверки на определенные роуты. Кстати, на какие роуты делать, на все или просто выборочно?
В правильном ли направлении я вообще? Делается ли так? Может у кого есть идеи получше?