TL; DR:
Пример проекта: https://github.com/JakubMazur/SO52339694
Принцип тестирования заключается в том, что вы контролируете среду, поэтому для тестирования следует использовать одно из предопределенных местоположений илипоместите одно из ваших местоположений в .gpx
файл:
пример:
<?xml version="1.0"?>
<gpx version="1.1">
<wpt lat="50.12108905423" lon="39.9260224404235">
</wpt>
</gpx>
Если вы в комментариях сказали как место в данный момент внутри UITesting, это не будет возможно в реальномвремя, но вы можете объединить несколько вещей, чтобы получить местоположение из времени пару секунд / минут назад.
Вот что я хотел бы сделать:
Существует инструмент под названием corelocationcli доступно через доморощенный.Если вы установите его, это даст вам текущие координаты.
Затем я создам файл, связанный в моем проекте xcode в тестах, назовем его genarated.gpx
и заполню его любыми данными на данный момент..
Тогда я напишу такой скрипт:
код
#!/bin/bash
latitude="$(CoreLocationCLI -format \"%latitude\")"
longitude="$(CoreLocationCLI -format \"%longitude\")"
echo "<?xml version=\"1.0\"?>
<gpx version=\"1.1\">
<wpt lat=${longitude} lon=${latitude}>
</wpt>
</gpx>" > generated.gpx
И примените это как фазу сборки:
Таким образом, получение местоположения происходит за пару секунд до запуска UITests, ноесли вы можете прожить с этой задержкой в пару секунд, это решение должно работать для вас.
Пример проекта вы можете найти на github