Jak deklarować obiekty generyczne w testach jednostkowych.

0

Cześć,
Zaczynam swoją przygodę z testami i javą i mam pytanie:
Jeżeli mam klase:

 public class Heap<T extends Comparable<T>> implements HeapInterface<T> {}

To w testach powinienem tworzyć instację klasy w 1 czy drugi sposób:

Heap<Double> instance = new Heap<>();
 Heap instance = new Heap();
3
  1. Skoro zadajesz takie pytanie to strzelam, że robisz coś bardzo źle ... co chcesz przetestować?
  2. Drugi zapis gwarantuje Ci ból głowy i wiele problemów. Z punktu widzenia współczesnej javy to składnia spadkowa i są z nią związane pewne nieoczywiste zachowania kompilatora. https://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html Omijaj i to nie tylko w testach.
0
jarekr000000 napisał(a):
  1. Skoro zadajesz takie pytanie to strzelam, że robisz coś bardzo źle ... co chcesz przetestować?
  1. Drugi zapis gwarantuje Ci ból głowy i wiele problemów. Z punktu widzenia współczesnej javy to składnia spadkowa i są z nią związane pewne nieoczywiste zachowania kompilatora. https://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html Omijaj i to nie tylko w testach.

Testuje kopiec i sortowanie. W testach sprawdzam czy jest zabezpieczenie przed nullem i czy rzeczywiscie po wstawieniu do kopca N liczb najwieksza z nich zostanie pierwsza zdjeta. no i jak jest tylko jedna liczba na kopcu to zdjeta liczba musi byc tą podaną.

2

Ok. To testuj na konkrecie. Integer byłby chyba lepszy niż Double, ale Double też może być (Double to świnia jeśli chodzi o equals, ale w tym przypadku raczej nie ma problemu).
Zaciekawiło mnie to zabezpieczenie przed nullem - to znaczy co dokładnie takie zabezpieczenie robi?

0
jarekr000000 napisał(a):

Ok. To testuj na konkrecie. Integer byłby chyba lepszy niż Double, ale Double też może być (Double to świnia jeśli chodzi o equals, ale w tym przypadku raczej nie ma problemu).

Zaciekawiło mnie to zabezpieczenie przed nullem - to znaczy co dokładnie takie zabezpieczenie robi?

W kodzie dodałem wyjątek, jeżeli na wejściu podasz np. Double input = null to ma wyrzucić wyjątek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1