Warum Mockitos Mock gibt 0 zurück, wenn es null zurückgeben soll?

8

Wenn es ein Objekt mit einer Eigenschaft vom Typ box gibt, gibt der Getter der Eigenschaft 0 zurück. Dies sollte jedoch null zurückgeben, da der Standardwert der Eigenschaft des eingerahmten Typs null ist. Was ist das Problem hier?

%Vor%     
Sanghyun Lee 28.10.2014, 05:40
quelle

3 Antworten

5

Das ist einfach der gewählte Standardwert für primitive und Wrapper-Typen in der Standard-Mockito-Antwort.

    
Brice 28.10.2014 08:07
quelle
2

Ich hatte das gleiche Problem und meine Lösung war, die Standardantwort des Mocks auf null zu ändern:

%Vor%

(Nicht sicher, ob die Standardantwort festgelegt werden kann, wenn Sie die Annotation @Mock verwenden möchten)

Wenn Sie aus irgendeinem Grund nur den Standardwert für Long (und nicht zB Integer ) festlegen möchten, sollte dies in der Methode answer geschehen:

%Vor%     
LoPoBo 05.08.2015 10:47
quelle
0

Das ist der korrekte Wert, der für die Getter-Methode zurückgegeben wird.

Wenn Sie eine Klasse in Mokito verspotten, werden auch alle Methoden in der Klasse verspottet. Das ist also unabhängig davon, dass die Boxed-Type-Eigenschaft auf Null gesetzt ist. Wie Sie den LONG-Wert sehen, den Sie als Instanzvariable haben, deren Standardwert 0L ist.

So wird person.getId () immer 0 und nicht NULL zurückgeben.

    
vikeng21 28.10.2014 05:58
quelle

Tags und Links