Автоматизированное тестирование привилегированных операций
Как вы тестируете модульный / интеграционный код, который требует другого уровня привилегий, чем существует в вашей среде непрерывной интеграции?
В моей некорневой, CCRB-управляемой среде сборки, у меня есть некоторые служебные функции, которые предполагают привилегии, которые не удерживаются в моей автоматизированной среде сборки: либо привилегии root, либо специальные учетные записи и группы. (Например, одна функция изменяет UID/GID и дополнительные группы на указанную учетную запись, изменяет root и current рабочий каталог, и разводы от любого управляющего терминала.)
Конечно, мы могли бы выполнить тесты вручную, но тогда мы могли бы забыть их выполнить.
Как другие решали эту проблему?
1 ответ:
Я бы попытался разложить на множители код управления безопасностью за поддельным интерфейсом, чтобы в модульных тестах я мог предоставлять поддельные привилегии, как я хочу.
Таким образом, можно было бы проверить как то, что при отсутствии требуемых привилегий функция терпит неудачу, так и то, что с предоставленными привилегиями она делает то, что должна делать.
Без более конкретных деталей трудно сказать больше.