Возможно ли вообще для одного приложения iOS получить доступ к каталогу Caches другого приложения?

#iphone #ios #unit-testing #gh-unit #nsdocumentdirectory

#iPhone #iOS #модульное тестирование #gh-unit #nsdocumentdirectory

Вопрос:

Я пишу модульный тест с GHUnit. Я хотел бы проверить, генерируется ли файл в каталоге Caches в каталоге библиотеки другого приложения. Возможно ли это, или приложениям запрещено обращаться к каталогам библиотек друг друга? И если да, существуют ли какие-либо возможные обходные пути для создания модульного теста для этого? Могу ли я сохранить сгенерированный файл в другом каталоге, например Documents, или это не поможет?

Комментарии:

1. Когда вы говорите «другое приложение», вы имеете в виду тот факт, что GHUnit устанавливается как отдельный идентификатор цели и пакета (таким образом, другой «значок») на вашем iPhone?

2. Да, это то, что я имею в виду. Поскольку GHUnit делает это, означает ли это, что его можно считать другим приложением и, следовательно, он не может получить доступ к каталогу библиотеки приложения, для которого я пишу модульные тесты?

Ответ №1:

На устройстве это вообще невозможно. В симуляторе вы теоретически можете это сделать, если знаете случайный UUID, который называет каталог, в котором установлено приложение.

Но я бы настоятельно рекомендовал вам даже не пытаться. Вместо этого сделайте так, чтобы код, который вы собираетесь тестировать, был достаточно похож на собственный, чтобы его можно было тестировать. Модульный тест, который проверяет, ведет ли себя другое приложение, сам по себе почти так же бесполезен, как модульный тест, который проверяет, вызываете ли вы API с правильными аргументами.

Ответ №2:

Я не понимаю контекста, в котором вы пытаетесь выполнить модульное тестирование, поэтому, возможно, мой ответ неверен, но я понимаю, что вы хотите получить доступ к своему другому приложению, потому что GHUnit создается как отдельное приложение.

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

Почему бы не запустить любой код для создания кэша, который вы пытаетесь протестировать, в первую очередь из тестируемого целевого приложения, а затем проверить каталог Libary / Cache вашего пакета?

Это все, что должно быть в нем.

Ответ №3:

Приложения могут получать доступ только к своим собственным папкам в своей изолированной среде. Ваше приложение для модульного тестирования отделено от вашего приложения, в котором вы хотите проверить содержимое кэша?

Комментарии:

1. Я использую GHUnit, поэтому я почти уверен, что это отдельные приложения.

2. Я так и подумал, рад, что вы нашли ответ.

Ответ №4:

Нет, что вам нужно было бы сделать, это использовать префиксы URL и зарегистрировать методы для выполнения всего, что вам нужно, в этом приложении при установке.