Cześć. Ostatnimi czasy w wielu miejscach spotykałem się z wychwalaniem testów jednostkowych, wręcz z koniecznością ich używania (książka "Clean Code"). Teraz z ciekawości postanowiłem dogłębniej się tym zainteresować. A akurat piszę sobie pewien projekt oparty na frameworku, a więc i MVC.
Problem jest w tym, że nie mam pojęcia, jak to praktycznie zrealizować, kiedy wszystko mam podzielone na kontrolery/modele/klasy widoków/różne helpery i wszystko jest od siebie zależne. Nie mam pojęcia jak w ogóle mam zacząć, co testować...Domyślam się że powinienem skopiować całą strukturę plików zawierających klasy do folderu z testami, wywalić kod z metod i pisać w zamian tego testy....
Wydaje mi się to trochę dziwne, ale innej możliwości nie widzę. Testować wszystko, czy tylko wybrane części kodu? Jeśli tylko części, to jakie części?
Dajmy na to, że stworzyłem sobie klasę, która odpowiada za wyświetlanie informacji o pomyślnym/niepomyślnym wykonaniu jakiejś akcji. W kontrolerach stosuję sobie wtedy wywołania Helper_Redirect::execute('Pomyślnie coś zrobiłeś'), i wtedy funkcja execute() wyświetla plik widoku z daną wiadomością (i jeszcze wszystko przechodzi przez klasę widoku...). Co w takim przypadku testować? To, czy w execute() jest dany parametr? Czy jest odpowiedniego typu? Czy widok został pokazany? Wszystko po kolei?
Wiem, że te testy powinno się pisać najlepiej przed pisaniem kodu, a nie jak już jest cały projekt prawie skończony, ale co tam :P
Prosiłbym o jakiekolwiek nakierowanie mnie na właściwą ścieżkę,
Dzięki i pozdrawiam