Od początku jak zaczynałem pisać tego bloga miałem założenie, że będzie tutaj 75% treści o Eclipsie, a 25% o sprawach ogólniejszych związanych z wytwarzaniem oprogramowania. Jak widać, na razie 99% postów dotyczy Eclipse'a, więc pora zacząć to zmieniać. Dzisiaj na
InfoQ trafiłem na
ciekawą dyskusję między Bobem Martinem i Jimem Coplienem na temat wad i zalet TDD (Test Driven Developement) oraz CDD (Contract Driven Developement). Czy naprawdę profesjonalistą jest tylko ten kto pisze testy zanim napisze kod produkcyjny?
Nie chodzi o to czy jest profesjonalistą :) Tylko oto, że potem jest mniej pracy przy zmianach.
OdpowiedzUsuńŻeby to było takie proste, napisałeś testy to reszta już z górki :-P
OdpowiedzUsuńRacja, że testy należy pisać. Przed, po, obojętne, byle były. Obrazują jak należy używać nasz kawałek kodu, jak wywoływać metody, jaki flow trzeba przejść, etc.
Test sprawdza nasz tok myślenia, czy to co założyliśmy w tym kawałku kodu, faktycznie robi to co myślimy.
I najważniejsze, każdy test należy rozpatrywać osobno, jakby nie było reszty aplikacji, tylko nasza klasa, metoda i test, który ją testuję. I tu trzeba tak zestawić środowisko testowe, żeby to było możliwe, albo w ogóle myśleć w taki sposób o aplikacji, kawałki kodu, które muszą ze sobą współpracować.
Wiem, że są to sprawy oczywiste, ale tak to jest, to co jest oczywiste, nie zawsze do nas dociera :D
A jak zmieni się specyfikacja, to i tak trzeba będzie testy poprawić ;-)