2017-04-04 17 views
5

Próbuję nagrać przypadek testowy, w którym NSDocument tworzy i zapisuje plik (następnie otwiera + ponownie weryfikuje zawartość). Problem polega na tym, że kiedy nagrywam swój przypadek testowy, po uruchomieniu NSSavePanel nagrywanie XCTestCase zatrzymuje się. Próbowałem szukać przykładów przypadków testowych wchodzących w interakcje z panelami zapisywania/otwierania, ale nie miałem szczęścia.Zapisz plik XCTestCase? (Record NSSavePanel)?

Czy ktoś może wskazać mi jakieś szczegóły, jeśli XCTestCases może współdziałać z NSSavePanels? Przykład kodu byłby lepszy, ale dokumentacja również byłaby świetna!

Odpowiedz

-1

Tak, może.

Wykorzystując XCUIApplication

XCUIApplication ma minimalny API, ale kilka metod zasługują na szczególną uwagę:

-launch - domyślnie nowy XCTestCase szablony zawierają linię -SETUP który tworzy nową instancję XCUIApplication i uruchamia go. Po wywołaniu opcji -launch spowoduje zakończenie działania poprzednio uruchomionej instancji aplikacji docelowej. Oznacza to, że domyślnie każdy dodany przez ciebie przypadek testowy spowoduje ponowne uruchomienie aplikacji przed każdą metodą testową. Możesz tego uniknąć, wykorzystując wspólne odniesienie do pojedynczej aplikacji XCUIA, które uruchamiasz tylko jeden raz, jednak poza ogólnymi czasami testowania nie ma to wielkiej korzyści.

-launchEnvironment - Umożliwia kontrolę niestandardowych zmiennych środowiskowych przekazywanych do aplikacji docelowej podczas uruchamiania. Może to być wykorzystane do (między innymi) ustawienia niestandardowej zmiennej, której Twoja aplikacja może użyć do określenia, kiedy działa jako miejsce docelowe do automatycznego testowania interfejsu użytkownika. Chociaż może się to przydać, należy go używać rozważnie. Twoje testy interfejsu użytkownika nie są zbyt pomocne, jeśli nie wykonują tego samego kodu, co użytkownicy.

UI Recording

z Xcode 7, Apple dodał przycisk Record UI test, który pozwala na krok za pośrednictwem interfejsu użytkownika i mieć te działania rejestrowane dla Ciebie w jakikolwiek prąd sprawdzian metoda edytowania. Chociaż brzmi świetnie w teorii, w praktyce odkryłem, że jego obecna implementacja jest błędna i niewiarygodna. Oto kilka wskazówek dotyczących korzystania z niego:

Poruszanie się w zwolnionym tempie - Zbyt szybkie lub szybkie przejście do kliknięć i naciśnięć klawiszy klawiatury może spowodować, że niektóre z nich będą pomijane przez Xcode.

Oczekiwanie na błędy - Nagrywanie po prostu nie zadziała w niektórych przypadkach. Kliknięcie przycisku Nie zapisuj w pliku NSSavePanel spowoduje zapisanie łańcucha znaków ze znakiem unikatu, który nie działa. Wiele razy nagrywanie zakończy się niepowodzeniem z ogólnym komunikatem o błędzie, takim jak ten poniżej. Sugestia? Korzystaj z nagrywania oszczędnie, jako punktu wyjścia do pisania przypadków testowych "od zera".

enter image description here

+0

Dzięki, ale to faktycznie nie odpowie nic wspólnego ze związkiem XCTestCase interakcji z systemem NSSavePanel? – Kyle