Ich verwende Vaadin, eine jOOQ Datenbank und will eine Methode testen, dessen Datenbankzugriff gemockt werden soll. Mein Code:
In Zeile 38 wird mir dann ein Nullpointer geworfen. Kann bei Bedarf auch den Error-Stacktrace ausgeben. Debuggen hat mir gar nicht geholfen. Googlen hat auch nicht viel gebracht und ich verstehe auch allgemein nicht, wieso dort ein Nullpointer geworfen wird. Gebe ich hier nicht nur das Verhalten an, was geschehen soll, wenn dieser Aufruf getätigt wird?
Ich hoffe jemand kann mir helfen.
Java:
package de.phoneresearchfield.prf2.web.vaadin.views;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.Mockito.when;
import org.jooq.DSLContext;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.BeforeEach;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
import de.phoneresearchfield.prf2.web.domain.tables.records.MethodUsedRecord;
import de.phoneresearchfield.prf2.web.vaadin.views.admin.MethodUsedEditView;
import de.phoneresearchfield.prf2.web.domain.Tables;
@ExtendWith(MockitoExtension.class)
public class MethodUsedEditViewTest {
@Mock
private DSLContext dslContextMock;
@InjectMocks
private MethodUsedEditView methodUsedEditView;
@BeforeEach
public void setUp() {
MockitoAnnotations.openMocks(this);
this.methodUsedEditView = new MethodUsedEditView(dslContextMock);
}
@Test
public void testCheckIfNewMethodUsedAlreadyExistsSuccess() {
MethodUsedRecord methodUsedRecordMock = Mockito.mock(MethodUsedRecord.class);
Mockito.when(methodUsedRecordMock.getDescription()).thenReturn("methodUsed1");
methodUsedRecordMock.setDescription("methodUsed1");
assertNotNull(Tables.METHOD_USED);
assertNotNull(Tables.METHOD_USED.DESCRIPTION);
when(dslContextMock
.selectFrom(Tables.METHOD_USED)
.where(Tables.METHOD_USED.DESCRIPTION.eq("methodUsed1"))//<--- Nullpointer-Exception
.fetchOne())
.thenReturn(methodUsedRecordMock);
boolean methodUsedRecordAlreadyExists = methodUsedEditView.checkIfNewMethodUsedAlreadyExists(methodUsedRecordMock);
}
}
In Zeile 38 wird mir dann ein Nullpointer geworfen. Kann bei Bedarf auch den Error-Stacktrace ausgeben. Debuggen hat mir gar nicht geholfen. Googlen hat auch nicht viel gebracht und ich verstehe auch allgemein nicht, wieso dort ein Nullpointer geworfen wird. Gebe ich hier nicht nur das Verhalten an, was geschehen soll, wenn dieser Aufruf getätigt wird?
Ich hoffe jemand kann mir helfen.