Ich möchte die nächste Funktion in Java mit EasyMock, Mock oder Mockito testen. Ich möchte testen, wenn ich die LeerCantPueblos() -Funktion aufrufen, wird die Abfrage ("SELECT conarpueblos()") ausgeführt.Fehler beim Testen der SQL-Abfrage mit Mockito in Java
private void leerCantPueblos(){
cantPueblosBD = leerBD.cantidadPueblos();
try {
while(cantPueblosBD.next()){
CANTIDADPUEBLOS = cantPueblosBD.getInt("contarpueblos");
}
} catch (SQLException e) {e.printStackTrace();}
}
Dieser Funktionsaufruf zu CantidadPueblos(), das ist die nächste Funktion.
public ResultSet cantidadPueblos() {
try {
sentencia = conexion.createStatement();
ResultSet cantidadPueblos = sentencia.executeQuery("SELECT contarpueblos()");
return cantidadPueblos;
} catch (SQLException e) {}
return null;
}
Ich versuche mit dem nächsten JUnit-Test aber wirft Nullpointer
package tests;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import org.easymock.Mock;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import server.ConexionBD;
public class TestBD {
@InjectMocks
ConexionBD conexionDB;
@Mock
Connection conexion;
@Mock
Statement sentencia;
@Before
public void setup() throws SQLException {
MockitoAnnotations.initMocks(this);
//Mockito.initMocks(this);
Mockito.when(conexion.createStatement()).thenReturn(sentencia);
}
@Test
public void cantidadPueblos_shouldExecuteQuery() throws SQLException {
conexionDB.cantidadPueblos();
Mockito.verify(sentencia).executeQuery("SELECT contarpueblos()");
}
}
Die nächste Reihe fehlschlagen:
Mockito.when(conexion.createStatement()).thenReturn(sentencia);
Sentencia wird zurückgegeben, wenn createStatement auf conexion aufgerufen wird, aber Sentencia wird nie initialisiert. Es ist null! –
Und wie kann ich initialisieren? Sentencia = null? oder muss ich die Aussage zuerst erstellen? Ich bin neu in JUnit und spöttisch .. @RahulSharma –
Könnten Sie den vollständigen Code des Tests hinzufügen? d. h. Klassendeklaration, Importe – Evgeny