Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con JUnit , DAO (getConnection)

Estoy empezando con Junit y tengo un problema al realizar pruebas unitarias con JUnit contra una clase que contiene el acceso a la BBDD, la aplicación no utiliza Spring, ni hibernate, con el código que anexo me sale nullpointerexception contra la conexion que no consigo hacerla y estoy atascada.
No se si debo utilizar mock, y en caso que sea así que libreria

---------------------------------------
package prueba.serviciosTest;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import prueba.ServicioDAO;

public class ServicioDAOTest {

static ServicioDAO servicioDao= null;

@Before
public void setUp() throws Exception {
servicioDao = new ServicioDAO();
}

@Test
public final void testGetRecuperarUnServicio() {


assertNotNull(servicioDao.getRecuperarUnServicio("MAN"));

}

}


----------------------------------------------------------------------------------------------


package prueba.servicios;

import java.sql.Connection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.util.ArrayList;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.sql.DataSource;


public class ServicioDAO implements ServicioDAOInterface {

//poner a private
private DataSource fuenteDatos = null;

String errorInicial = null;
/* SQLs del DAO de la tabla de servicios */

/* SQL para recuperar un servicio determinado, tanto el código como la descripción */
private static String sqlRecuperarUnServicio = "select * from ta_servicios where serv_cod = ?";


public String getErrorInicial () {
return this.errorInicial;
}


/*
* Constructor
*/
public ServicioDAO () throws SQLException {
try {

Context contextoInicial = new InitialContext();
Context contexto = (Context) contextoInicial.lookup("java:comp/env");
fuenteDatos = (DataSource) contexto.lookup("jdbc/pruebaDS");

} catch (NameNotFoundException e) { // Hija de NamingException
errorInicial = new String(e.toString());
} catch (Exception e) {
errorInicial = new String(e.toString());
}
}

/*
* Recupera un Servicio se le pasa el codigo del servicio que se desea obtener
*/
public Servicio getRecuperarUnServicio(String servCodParam) {

//Inicializamos
String servCod = "" ;
String servDesc = "";


// Objeto en el que se guardará el servicio que se recupere
Servicio servicioRecuperado = new Servicio();

try {

Connection conexion = fuenteDatos.getConnection();

try {
PreparedStatement statement = conexion.prepareStatement(sqlRecuperarUnServicio);
statement.setString(1, servCodParam);

try {
ResultSet resultSet = statement.executeQuery();

while (resultSet.next()) {
servCod = resultSet.getString("serv_cod");
servDesc = resultSet.getString("serv_desc");


}

// lo saco fuera para cargar 0 sino retorna nada
servicioRecuperado.setServCod(servCod);
servicioRecuperado.setServDesc(servDesc);


/* Devolvemos servicio recuperado */
return servicioRecuperado;
} finally {
statement.close();
}
} finally {
conexion.close();
}


} catch (SQLException ex) {
System.out.println("Excepcion en recuperar 1 Servicio (getRecuperarUnServicio/ServicioDAO): "
+ ex.getSQLState());
return null;
}

}

octubre 24, 2013 | Unregistered CommenterVictor