Jestem nowy w testowaniu jednostek, a ja dopiero wchodzę w rutynę budowania zestawów testów. Mam dość duży projekt, od którego chcę budować testy.Odnajdywanie wzorców awarii w teście jednostek
Próbuję znaleźć ogólne strategie i wzorce do budowania zestawów testów. Kiedy patrzysz na lekcję, wiele testów przychodzi do ciebie oczywiście z powodu natury klasy. Powiedz o klasie "konto użytkownika" z podstawowymi operacjami CRUD, powiązanymi z tabelą bazy danych, będziemy chcieli przetestować - cóż, CRUD.
- tworzenia obiektu i sprawdzając, czy istnieje
- zapytania jego właściwości
- zmianę niektórych właściwości
- zmienić niektóre właściwości do błędnych wartości
- i usuń go ponownie.
chodzi o jak złamać rzeczy, istnieją „fail” testy wspólne dla większości klas CRUD jak:
- Nieprawidłowe typy danych wejściowych
- Szereg jako klucz ID, który przekracza zakres wybrany typ danych
- Wejście w błędnym kodowaniem znaków
- wejściowe, które jest zbyt długi
I tak dalej i tak dalej.
Dla zainteresowanych z operacjami na plikach testów jednostkowych, lista „rzeczy łamanie” może być
- Nieprawidłowe znaki w nazwie pliku
- Nazwa pliku zbyt długo
- Nazwa pliku używa błędnej protokołu lub ścieżki
Jestem prawie pewien, że podobne wzorce - stosowane poza testem jednostkowym, nad którym obecnie pracujemy - można znaleźć dla większości testowanych urządzeń.
Teraz moje pytanie brzmi:
mam rację widząc takie "wzorce łamiącym"? Czy dostaję coś kompletnie błędnego w testowaniu Jednostki i jeśli zrobiłem to dobrze, to nie byłoby to wcale problemem? Czy testowanie jednostek to proces znalezienia jak największej liczby sposobów na rozbicie jednostki, jak to możliwe?
Jeśli mam rację: czy istnieją już definicje, listy, arkusze do ściągnięcia takich wzorców?
Czy są jakieś przepisy (głównie w PHPUnit, ponieważ to jest struktura, w której pracuję), aby zautomatyzować takie wzorce?
Czy istnieje pomoc - w postaci list kontrolnych lub oprogramowania - aby pomóc w napisaniu pełnych testów?
Dzięki Péter. Wciąż znajduję drogę dookoła tematu i wciąż nie jestem pewien, czy robię to dobrze, więc jestem wdzięczny, że mogę uzyskać tutaj informacje zwrotne o jakości. Po prostu instynkt mojego leniwego dzwoni dzwonkiem, kiedy pisałem w istocie ten sam test po raz drugi :) Ale rozumiem twój punkt widzenia na temat TDD i tego, jak nie jest to automatyzacja. Zauważam, że powoli wślizguję się w to, pisząc najpierw testy, a potem jednostkę, która jest naprawdę świetnym sposobem na pracę. –
Praktyka @Pekka czyni mistrza i to jedyny sposób, aby naprawdę go zdobyć :-) Btw Pekka jest fińską nazwą, czy jesteś pochodzenia fińskiego? –
@Peter to zdecydowanie robi. Re origin: pół. Urodziłem się w Finlandii, ale dorastałem w Niemczech, więc jestem prawie Niemcem. Wciąż jednak mówię trochę fińsko. –