Cześć,
Mój problem polega na tym, że znam frameworki do testów jednostkowych, ale nie mam wypracowanego stylu tworzenia testów, więc pomyślałem, że pomożecie mi taki wypracować na bazie własnych doświadczeń.
Korzystam z frameworków spock lub zestawu JUnit4 i mockito 1.8.4. Osobiście preferuję spocka, ale nie wiem czy ktoś tu korzysta z niego, bo chyba nie jest on zbyt popularny, więc przykłady niech będą w JUnit4.
- Klasa testu powinna obejmować jedną metodę czy jedną klasę.
Czyli tworzycie test dla pojedynczej klasy i w środku testu (tzn. klasie) znajdują się różne metody oznaczone adnotacją @Test, które testują konkretne metody danej klasy lub można utworzyć klasę testu aby testowała pojedynczą metodę i w tej klasie znajdowały się metody testujące różne scenariusze dla danej metody np. czy wyrzuci wyjątek itp. Problem z pierwszym sposobem jest taki, że zdarzają się sytuacje kiedy w pojedynczej klasie mam mnóstwo metod testowych, przez co ta klasa osiąga mnóstwo linijek kodu. Drugie podejście znów powoduje ogromną eksplozję klas.
- Jak organizujecie swoje testy w pakietach?
- Nazewnictwo testów:
Preferujecie nazwy dla swoich testów bardziej behawioralne w stylu "it should create object" tego typu stosuję w spocku, ale on jest frameworkiem BDD, więc to zrozumiałe. Drugi sposób standardowy, który daje znać jaką metodę testujemy np. "objectCreatorTest".
pozdrawiam