2012-12-06 13 views
8

w Xcode, pod koniec moich testów jednostkowych uzyskać wynik takiego:jak pisać oczekiwane awarie?

Test Suite '' Wszystkie testy zakończone w 2012-12-06 10:23:38 +0000

Wykonywany 195 testów, przy czym 0 porażek (0 nieoczekiwany) w 4.314 (4.485) sekund

chciałbym się dowiedzieć, w jaki sposób mogę określić testy z oczekiwanymi awariami.

Zazwyczaj w przypadku innych ram testowych lubię mieć możliwość definiowania niekompletnych testów jednostkowych jako przypomnień o przyszłej pracy, którą należy wykonać. Testy te powinny być rejestrowane tylko jako ostrzeżenia, ale nadal dają wynik końcowy "Sukces", jeśli wszystko jest w porządku.

Patrząc na wyjście Xcode, zakładam, że jest sposób na osiągnięcie tego samego. Mam jednak problemy ze znalezieniem odpowiedniego makra do oznaczania niekompletnych/testów TODO. Ponadto wydaje mi się dziwne, że normalne awarie są zgłaszane jako:

stracony 95 prób, z 1 awarii (0 niespodziewany) w 2.314 (2.334) sekund

Stąd każde niepowodzenie testu twierdzenie wydaje się być oczekiwanym. W takim przypadku jestem nawet mylony ze znaczeniem (0 nieoczekiwanych) niepowodzeń.

Czy ktoś mógłby wyjaśnić znaczenie tej części wyników dziennika ?, w jaki sposób można go użyć? jak mogę oznaczyć niekompletne testy?

Odpowiedz

7

"Nieoczekiwany błąd" to zgłoszony i nieobsługiwany wyjątek. W przeciwieństwie do potencjalnie oczekiwanej awarii, która jest sprawdzana przez asercję.

OCUnit nie zapewnia sposobu oznaczania testów jako "nie uruchamiaj". Albo je skomentuj (co pozostawia ryzyko, że test nie będzie już kompilowany), albo zmień nazwę metody, aby nie miała prefiksu "testowego". Na przykład zmień nazwę testu na XXXTestCoś. (Pozostawia to ryzyko, że zapomnisz go zmienić.)

+0

Dzięki! raz jeszcze więcej, jesteś świetnym bohaterem testującym kakao. Moje pytanie pojawiło się po pełnym 100% BDD w Ruby z rspec + ogórkową przygodą. Teraz rozumiem każdą tezę dotyczącą krajobrazu TDD w projektach Cocoa. – SystematicFrank

+0

Chciałbym, jeśli to gdzieś zostało udokumentowane. Jednak testowanie jednostek Apple pozostawia wiele do życzenia. – Step

1

Jednym z rozwiązań mojego problemu jest użycie makra preprocesora ostrzegawczego do oznaczenia testów jednostkowych, które należy wykonać. W ten sposób po skompilowaniu testów jednostkowych otrzymuję dobry przegląd przyszłych prac, które należy wykonać. Jest to pokazane w panelu ostrzeżeń, dlatego jest o wiele bardziej atrakcyjne niż tylko używanie komentarzy TODO.

Jednak wolałbym mieć całkowitą liczbę niekompletnych testów i dowiedzieć się, jakie znaczenie ma zawsze "0 nieoczekiwanych" liczników raportów dziennika.