Aktywne Wpisy
na wpół żywym hajto ludzie dają więcej reakcji niż tu
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Skopiuj link
Skopiuj linkTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
Albo funkcja, ktora modyfikuje jakas podana pandas.DataFrame i zwraca zmodyfikowana?
#programowanie #python #tdd
To ta twoja funkcja tyle robi rzeczy na raz? To troche za dużo. Te interfejsy do peracji I/O się po prostu mockuje. Nie testujesz samego czytania/pisania. Możesz testować interpretację danych. Po za tym powyżej UT są inne typy testów.
Robisz test jednostkowy dla funkcji która pobiera dane, oddzielne testy dla funkcji robiących operacje, i oddzielny test dla funkcji zapisującej csv. Dzięki temu zamiast 5 * 5 * 5 = 125 kombinacji do przetestowania (jeśli każdy etap miał 5 przypadków testowych) masz tylko 5+5+5 = 15 testów.
Test sprawdzający to wszystko razem nie nazywa się jednostkowy, tylko integracyjny, i jest wiele sposobów
@informatyk @PrawyKuba dzieki
@tell_me_more to by wiele wyjasnialo xd dzieki
Testy mogą tu pomóc pośrednio, kiedy zamiast je pisać myślimy o problemach z testowaniem na etapie projektowania albo podczas wyodrębniania wyspecjalizowanego kodu z wyższej, łatwiejszej (do testowania z góry) abstrakcji na etapie jej refactoringu.
Tutaj dyskusja
okreśrenie jednostki jest płynne, dla aplikacji webowej widok może być taką jednostką pomimo tego, że logika jest skomplikowana. oczywiście jeżeli wewnątrz
@MQs: powiem ci że już więcej niż raz UT pomogły mi przemyśleć interfejs. Wiadomo UT to nie panaceum na wszyskto ale pomaga.
wiesz jak to jest w firmach szczególnie w korpo ze refactoringiem.
@CukrowyWykop: Może dasz radę pokazać jakiś przykład tego jak testy pomogły ci zaprojektować interfejs? Przy czym nie chodzi mi o pomaganie, o którym pisałem - "pośrednio", tylko przykład kiedy sam test pokazał, że interfejs jest zły - może nie uwzględniam jakichś przypadków po prostu.
Na razie uważam, że bezpośrednio nie zbudujesz struktury obiektów dzięki testom pojedynczych klas/kontraktów - w
@MQs: cieżko z pamięci mi przywołać refactorowane moje projekty. Pamiętam że zaprojektowałem źle hierarchię obiektów. W momencie w którym zaczekałem pisać UT i patrząc na przypadki testowe, od razu nasunęło mi się że funkcje powinna np. zwracać coś innego, powinny być dwie funkcje albo trzeba to przenieść do innej klasy.