Argument Captor liefert NULL zurück

8u3631984

Bekanntes Mitglied
Hallo zusammen ich möchte meinen Service gerne testen :
Hier ist der Service, den ich testen möchte :
Java:
    @Override
    public T save(T databaseDocument) {
        Objects.requireNonNull(databaseDocument, "database document ca not be null");
        
        T savedDatabaseDocument = repository.saveAndFlush(databaseDocument);
        log.info("saved database document : [{}]", savedDatabaseDocument);

        return savedDatabaseDocument;
    }

Ich habe auch schon mit der "@nonNull" annotation von Lombok hermumgespielt. Aber es ist das gleiche Resultat :
Code:
    @Test
    @DisplayName("can save media document")
    void canSaveMediaDocument() {
        ArgumentCaptor<MediaDocument> argumentCaptor = ArgumentCaptor.forClass(MediaDocument.class);
        service.save(argumentCaptor.capture());

        verify(repository, times(1)).saveAndFlush(argumentCaptor.capture());
    }

Der Test liefert an der save Methode einen NULL Pointer.
Ich verwende im Test folgende Mocks :

Code:
@ExtendWith(MockitoExtension.class)
public class MediaDocumentServiceTest {

    private MediaDocumentService service;

    @Mock
    private JpaRepository<MediaDocument, Long> repository;

    @BeforeEach
    private void init() {
        service = new MediaDocumentService(repository);
    }

Hat jemand eine Idee ?
Vielen Dank
 

LimDul

Top Contributor
Ich habe auch schon mit der "@nonNull" annotation von Lombok hermumgespielt. Aber es ist das gleiche Resultat :
Code:
    @Test
        service.save(argumentCaptor.capture());
Der Aufruf ist falsch. Da einen Capture zu übergeben ergibt überhaupt keinen Sinn. Dort übergibst du eine ganz normale Java Klasse.

Du brauchst für deinen Test gar keinen ArgumentCapture. Der ist dafür da, wenn du an das Objekt, das an den Mock übergeben wird, gar nicht dran kommst, weil es z.B. per new in der Methode erzeugt wird.

Das heißt, schmeiß den ArgumentCapture komplett weg, übergib einfach ein MediaDocument und prüf, dass das an die save & flush Methode übergeben wird. Fertig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S An internal error occurred during: Launching null argument Allgemeine Java-Themen 1
Rudolf Compiler-Fehler Lambda als Argument kompiliert nicht Allgemeine Java-Themen 2
X Console mit Argument öffnen? Allgemeine Java-Themen 10
F Classpath als Argument in Funktion übergeben Allgemeine Java-Themen 3
C Argument an einen Thread übergeben Allgemeine Java-Themen 4
K Command Line Argument Interpreter für komplexe Strukturen Allgemeine Java-Themen 9
Screen Eine mathematische Funktion als Argument für eine Methode - Matheparser? Allgemeine Java-Themen 21
G Fehler bei Array.getDouble mit Double[] als Argument! Allgemeine Java-Themen 6
F Parameter vs Argument Allgemeine Java-Themen 4
DiekleineRatte77 Schlüsselworte ANSI Konverter liefert UTF-8 Allgemeine Java-Themen 7
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
A Datentypen Long.valueOf liefert kein "L" am Ende Allgemeine Java-Themen 3
T Variablenübergabe liefert immer null Allgemeine Java-Themen 13
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
T SimpleDateFormat.parse() liefert falschen Tag Allgemeine Java-Themen 2
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
I newInstance() liefert null zurück Allgemeine Java-Themen 4
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
J Liefert new URL(String) gecachte Webseiten? Allgemeine Java-Themen 15
S HashMap containsKey liefert immer false zurück Allgemeine Java-Themen 15
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
A md5 liefert unterschiedliche Testsummen? Allgemeine Java-Themen 4
S FOP liefert fehlerhafte PDF Allgemeine Java-Themen 13
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
N contains(.) liefert nicht erwartetes Ergebnis Allgemeine Java-Themen 3
H JNI: loadLibrary liefert UnsatisfiedLinkError Allgemeine Java-Themen 2
J Base64 Kodierung liefert korrupte Dateien Allgemeine Java-Themen 3
S ´Locale.getDefault() liefert en Allgemeine Java-Themen 10
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
S aFile.delete() liefert false - Gründe ? Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben