Z tego co wiem, nie ma możliwości aktywacji tego na symulatorze.
Ogólnie rzecz biorąc, aby przetestować coś podobnego, wykonuję wywołanie zwrotne z komponentu Apple lub wyświetlam widok alertu, jeśli nie ma oczekiwanego wywołania zwrotnego (jak podczas wywoływania openURL:
, wyświetlę alert z adresem URL, który powinien należy otworzyć, aby sprawdzić, czy podczas otwierania tego adresu URL zostanie otwarta właściwa rzecz.
To jest trochę hacky, ale przynajmniej mówi mi, że jeśli składnik Apple daje mi oczekiwany oddzwaniam, moja aplikacja podejmie oczekiwaną akcję.
Jak sprawdzić, czy to testowanie? Masz kilka opcji.
Jon Reid ma dobry post o tym, jak sprawdzić, czy testujesz w czasie wykonywania tutaj: http://qualitycoding.org/app-delegate-for-tests/ - chociaż używa go do wyłączenia delegata aplikacji, użyłem podobnej techniki, aby sprawdzić, czy aplikacja jest obecnie dostępna w trakcie testu, czy nie.
Nie jestem w 100% pewna, że ta technika będzie działać z Cucumber i Frankiem, ponieważ nie wiem, czy działają one w tym samym procesie, co testy. Dla rzeczy nie działających w tym samym procesie co testy (takie jak testy XCUI) przekazałem argumenty ProcessInfo
podczas uruchamiania aplikacji, aby wiedziało, czego szukać. Ból w dupę, i znowu, hacky, ale wydaje się, że działa.
Z pewnością komputery nie mają kciuków, koleś. –
Nadal można używać 'osascript' do uruchamiania AppleScript bez nieprzyjemnych hacków. Otwórz Preferencje systemowe i przejdź do Bezpieczeństwo i prywatność -> karta Prywatność. Teraz dodaj Terminal (lub inną aplikację, której używasz do uruchomienia skryptu) do listy aplikacji w "Pozwól poniższym aplikacjom na sterowanie twoim komputerem." – Artal
@Artal To byłaby akceptowalna odpowiedź, jeśli możesz pokazać, jak to zrobić za pomocą wiersza poleceń (na przykład za pomocą narzędzia takiego jak Ansible). –