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?
Ich hatte das gleiche Problem und meine Lösung war, die Standardantwort des Mocks auf null
zu ändern:
(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:
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.
Tags und Links java unit-testing mocking mockito