Unit testy generycznej biblioteki

Unit testy generycznej biblioteki
RequiredNickname
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 646
0

Dla sportu piszę sobie w javie bibliotekę która jest dosyć generyczna pod względem przyjmowanych typów.

Przykład metody z interfejsu:

Kopiuj
WorkEvaluator<T, E> doTheJob(E key, Permission<T> permission);

Nie chciałbym się zbytnio rozwodzić co to, czemu tak a nie inaczej itp.
Chodzi o to, że docelowo ten projekt być może będę chciał upublicznić w jakimś maven repository to też w kodzie produkcyjnym będzie tylko generyczny kod.
Ale, że jest tam trochę pewnej logiki to chciałbym ją przetestować unitowo.
Problem w tym, że żeby zsetupować obiekty i wykonać na nić pewne operacje muszę je zsetupować w oparicu o jakieś obiekty (których nie mam w /src/main/java).

Chat gpt zasugerował aby w /src/main/test stworzyć sobie jakieś klasy/modele (które normalnie znajdują się w kodzie produkcyjnym naszych aplikacji a z którymi będzie używana ta libka) i napisać testy w oparciu o te fejkowe klasy.

Czy to podejście jest ok czy jednak takie generyczne biblioteki testuje się w inny sposób?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
2
RequiredNickname napisał(a):

Czy to podejście jest ok czy jednak takie generyczne biblioteki testuje się w inny sposób?

Tak, to będzie okej.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Testy chyba powinne się znajdować obok, src; a nie rozumiem, co za problem potworzyć sobie obiekty i przetestować, sprawdzić "corner casy", wyjatki, etc.?

RequiredNickname
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 646
0

@lion137 w /src/main/java nie mam żadnych obiektów które mógłbym wykorzystać do wywołania powyższej metody bo to biblioteka i te obiekty to nie część kodu produkcyjnego stąd pytanie czy stworzenie jakiejś fejkowej domeny w /src/main/test przy tego typu rzeczach jak testowanie generycznej libki jest ok czy jednak są inne sposoby ;)

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
3

To chyba oczywiste, że stworzysz sobie wszystko co potrzebne do przetestowania tych funkcji, nie wiem jakbyś miał to inaczej zrobić

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1
RequiredNickname napisał(a):

@lion137 w /src/main/java nie mam żadnych obiektów które mógłbym wykorzystać do wywołania powyższej metody bo to biblioteka i te obiekty to nie część kodu produkcyjnego stąd pytanie czy stworzenie jakiejś fejkowej domeny w /src/main/test przy tego typu rzeczach jak testowanie generycznej libki jest ok czy jednak są inne sposoby ;)

Nie, to jest jaknajbardziej okej. W folderze src/test/java/ mogą znajdować się wszelkiego rodzaju klasy i kod, nie tylko te zakończone na *Test.java.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.