MrBean Bean napisał(a):
Łukasz Hylicki napisał(a):
MrBean Bean napisał(a):
A ktoś słyszał o czymś takim jak framework izolacji( Moćkowania :D ) który wykorzystuje API Profiler ?
Jeśli chcesz sprawdzić wywołanie prywatnej metody to dało by radę przez np. TypeMock.
Co do testowania To nie można użyć mechanizmu refleksji.... ?Nie testuje się prywatnych metod w ogóle. Jeżeli masz kod, do którego chcesz wprowadzić testy, a kod nie jest testowalny, to polecam upublicznić metodę, którą chcesz przetestować. Przez jakiś czas naruszysz hermetyzację, ale to koszt wprowadzania testów do kodu legacy.
Częściowe, tymczasowe popsucie API to nic złego jeśli strategicznie zyskujesz więcej niż tracisz :)Czyli najpierw psujesz kod jeszcze bardziej a potem go testujesz ? Przecież to absurd, jeśli z jakiegoś powodu potrzebujesz w testach operować na prywatnych metodach to jak mówiłem API Profiler i mechanizm refleksji.
Tak. Jeśli chcesz poprawić jakość kodu legacy powinieneś najpierw pokryć dany kawałek kodu testami, a potem mając już siatkę bezpieczeństwa zrefaktoryzować go. Dopisany test Ci zagwarantuje, że refaktoryzując nie zepsujesz funkcjonalności.
Często właśnie się nie da napisać testu, bo kod jest niedostosowany i warto zrobić wtedy krok do tyłu, zepsuć enkapsulację, dopisać test, aby potem refactoringiem zrobić 10 kroków do przodu :)