Я использую Xcode 7 и хотел бы понять, как протестировать «Сохранение и восстановление состояния» в iOS9 с использованием аксессуара BLE и платформы CoreBluetooth (пожалуйста, не то, что я уже нашел этот вопрос, но я чувствую необходимость разобраться в этом подробнее).
Мне нужно, чтобы приложение автоматически передавало некоторые данные с аксессуара только тогда, когда телефон пользователя находится в зоне действия, а также в случае, если приложение ранее не было запущено.
Я попытался разбить это на три сценария, отражающие различные варианты этого варианта использования, а именно сценарий A, сценарий B и сценарий C.
Может ли кто-нибудь объяснить мне основные шаги, необходимые для тестирования следующих сценариев?
Имеют ли смысл эти сценарии?
сценарий А:
1 - приложение обнаруживает аксессуар и сохраняет информацию об аксессуаре
2 - приложение / пользователь выходит из диапазона аксессуаров
3 - приложение убито пользователем
4 — пользователь повторно входит в диапазон аксессуаров, пока приложение не запущено.
5 – Ожидаемое событие: я ожидаю активации восстановления состояния (метод willRestoreState вызывается в CentralManager, а также метод didFinishLaunchingWithOptions в AppDelegate.
Отсюда я должен иметь возможность получить список периферийных устройств, включая аксессуар, и решить, хочу ли я подключиться к нему.
6 - Если я решил подключиться, я ожидаю, что приложение будет продолжать работать в фоновом режиме (поскольку фоновый режим был активирован).
Как я могу протестировать этот сценарий?
сценарий Б:
1 - приложение обнаруживает аксессуар и сохраняет информацию об аксессуаре
2 - приложение подключается к аксессуару и отправляет запрос на характеристику, чтобы начать передачу данных
3 - приложение получает данные от аксессуара
4 - приложение / пользователь выходит из диапазона аксессуаров
5 - приложение переходит в фоновый режим
6 — пользователь повторно входит в диапазон аксессуаров, пока приложение работает в фоновом режиме.
5 – Ожидаемое событие: я ожидаю активации восстановления состояния (метод willRestoreState вызывается в CentralManager, а также метод didFinishLaunchingWithOptions в AppDelegate.
Отсюда я должен получить список периферийных устройств, включая аксессуар, и увидеть, что статус CONNECTED. Затем я должен повторно запросить поток данных (я предполагаю, что нет возможности возобновить предыдущий поток, верно?)
6 - приложение должно продолжать трансляцию в фоновом режиме
Как я могу протестировать этот сценарий?
сценарий С:
1 - приложение обнаруживает аксессуар и сохраняет информацию об аксессуаре
2 - приложение подключается к аксессуару и отправляет запрос на характеристику, чтобы начать передачу данных
3 - приложение получает данные от аксессуара
4 - приложение / пользователь выходит из диапазона аксессуаров
5 - приложение переходит в фоновый режим
6 - пользователь убивает приложение
7 — пользователь повторно входит в диапазон аксессуаров, пока приложение не запущено
8 – Ожидаемое событие: активируется восстановление состояния (метод willRestoreState вызывается в CentralManager, а также метод didFinishLaunchingWithOptions в AppDelegate.
Отсюда я должен получить список периферийных устройств, включая аксессуар, повторно подключиться к нему и повторно запросить передачу данных (возобновить ее, как для сценария B).
9 — я ожидаю, что приложение будет продолжать работать в фоновом режиме (поскольку фоновый режим был активирован), и приложение должно продолжать потоковую передачу в фоновом режиме.
Как я могу протестировать этот сценарий?
Надеюсь, это не слишком запутанно.