Witam wszystkich
Tak sobie piszę różne rzeczy, piszę sobie do nich testy i wzięło mnie na trochę przemyśleń, żeby to poszerzyć swoją wiedzę. Liczę, że bardziej doświadczone osoby pomogą.
- Do tej pory wszystkie testy robiłem w PHPUnicie, czy powinienem poznać coś innego, aby robić to lepiej, czy PHPUnit jest wystarczający?
- Często mam tak, że klasa jest długa, zawiera wiele metod, które np. wywoływane są z jednej głównej. Jak podejść do testów? Robić dla każdej tej metody osobny test, czy też postarać się to wszystko przetestować w obrębie jednej metody na kilku przypadkach?
- Co powinienem testować dla danej metody? Na przykład działanie z dobrymi danymi jak i działanie z danymi które mają zwrócić błąd? Czy jeszcze jakieś inne wartości?
- Czy dana metoda powinna odpowiadać tylko za jeden test? To znaczy... Na przykład w każdej metodzie muszę stworzyć klasę aby wywołać jej metodę i przygotować jakieś dane. Czy poprawnym jest umieszczenie tego np. w metodzie setUp(), czy też każda funkcja powinna odpowiadać w całości za dany test? Słyszałem i takie i takie teorie, i sam nie wiem.
- Czasem mam sytuację, że nie mogę niczego przetestować, bo np. trzeba by gdzieś coś zmienić, zmockować itd. Powinienem zmieniać lekko kod pod testy, aby np. dać możliwość wprowadzenia jakiejś właściwości? Czy nie, czy testy mają być ściśle dostosowane do kodu?
To chyba wszystko z takich bieżących problemów. Będę wdzięczny za rady bardziej doświadczonych osób.
Pozdrawiam