Запись и рабочие модульные тесты являются частью здорового процесса кодирования, это не дополнение, которое у клиента должен быть выбор заплатить или не заплатить за.
Стратегия тестирования является проблемой кодирования так же, как любым другим: какой datastructures использовать, переменные соглашения о присвоении имен, комментируют стандарты, и т.д.
Я бы сделал это, добавив ListProperty для ролей в модель, представляющую пользователей. Список содержит все роли, к которым принадлежит данный пользователь. Таким образом, если вы хотите узнать, принадлежит ли данный пользователь к данной роли (я думаю, это наиболее распространенная операция), это будет быстрый тест на членство.
Вы можете поместить имена ролей непосредственно в списки в виде строк или добавить уровень косвенного обращения к другому объекту, определяющий детали о роли, чтобы их было легко изменить позже. Но это требует дополнительных затрат времени выполнения на дополнительный RPC для получения сведений о роли.
Обратной стороной этого метода является то, что вы хотите удалить всех пользователей из данной роли или выполнить любую другую глобальную операцию. Я полагаю, вы можете пометить роль как удаленную, но тогда у вас все еще есть данные, загромождающие все ваши пользовательские модели, пока вы не очистите их вручную. Так что мне любопытно услышать, что предлагают другие.