Как обращаться с разрешениями камеры для тестов в Mac Mojave? - PullRequest
0 голосов
/ 29 июня 2019

У меня есть несколько устаревших модульных тестов, которые обращаются к камере в C ++ через внешний модуль, который управляет самой камерой. С Mac Mojave открывается запрос на разрешение камеры, и модульные тесты не пройдены из-за тайм-аута. Как я могу автоматически разрешить доступ к камере или вообще отключить эти запросы на разрешение?

Обратите внимание, что я не могу изменить тестовый код, который фактически получает доступ к камере. Это сторонний модуль.

Редактировать: вероятно, мне следовало бы назвать это интеграционным тестом, а не модульным тестом

1 Ответ

2 голосов
/ 29 июня 2019

В вашем случае в модульном тестировании не должно быть вызовов ввода-вывода, таких как файловый ввод-вывод, сетевой ввод-вывод или любая камера, подобная устройству ввода-вывода.Модульные тесты должны быть быстрыми и должны иметь возможность выполнять тысячи тестовых случаев в считанные секунды.

Решение состоит в том, чтобы реорганизовать вызовы к стороннему модулю, который обращается к камере с помощью интерфейса, так что вы можете делать внедрение зависимостейс помощью смоделированной реализации и управления последовательностью вызовов и возвращаемыми значениями.

Вы можете создавать свои собственные ложные реализации или использовать google mock подобные платформы, с помощью которых вы можете легко получить тонны функциональных возможностей, которые требуютсякогда вы имитируете функции.


Предоставьте камере доступ к «Терминалу» в «Системных настройках» → «Безопасность и конфиденциальность» → «Конфиденциальность» и всегда запускайте тестовое приложение с терминала.

...