Foros del Web » Programación para mayores de 30 ;) » Java »

test de clase abstracta

Estas en el tema de test de clase abstracta en el foro de Java en Foros del Web. buenas ,es posible testear una clases abstracta (los metodos concretos)..se podra hacer con mockito o de otra forma? se que en c# se puede...pero en ...
  #1 (permalink)  
Antiguo 24/11/2012, 13:14
 
Fecha de Ingreso: octubre-2010
Mensajes: 219
Antigüedad: 14 años, 1 mes
Puntos: 2
Pregunta test de clase abstracta

buenas ,es posible testear una clases abstracta (los metodos concretos)..se podra hacer con mockito o de otra forma?
se que en c# se puede...pero en java nose y tengo que entregar tp...necesito una mano



saludos..
  #2 (permalink)  
Antiguo 25/11/2012, 04:56
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: test de clase abstracta

Depende de cómo entiendas lo de probar una clase abstracta.

Por definición una clase no se puede instanciar, así que no se puede probar una instancia de una clase abstracta.

Sin embargo, sí puedes usar una instancia de una clase que herede de ella para probar los métodos (ojo con los override)
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 25/11/2012, 16:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 219
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: test de clase abstracta

Gracias por la respuesta.Estoy hablando de test unitarios.tengo una clases abstractta con metodos concretos y los quiero testear..buscando en google se que en c# se puede mockear u usar los metodos concretos pero en java no encontre info!!yo tengo subclases concretas,pero me parace que la idea es testear desde la superclase
  #4 (permalink)  
Antiguo 26/11/2012, 08:07
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: test de clase abstracta

Por definición una clase abstracta no se puede instanciar, así que no se puede probar una instancia de una clase abstracta.

Corregido mi anterior comentario, la explicación es la misma. No puedes testar una clase abstracta, tienes que hacerlo a través de sus clases derivadas o crear una clase mock que herede de la abstract para probar lo que necesites..
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 26/11/2012, 09:56
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: test de clase abstracta

En java tienes mockito que hace precisamente eso que dices.

mockear en java es lo mismo que te dice xerelo, creas una clase MockClass que extiende tu clase AbstractClass y es la que usas en el test. Pero tienes que implementar los métodos de la clase abstracta, y a lo mejor en alguno de ellos tienes que hacer override, con lo cual si vas a tener otras clases que extiendan esa clase abstracta y tengan diferentes implementaciones de los métodos entonces lo lógico sería testear esas clases extendidas.

Si haces el mock para los métodos abstractos tendrías que hacer overrides bien lo mas simples posibles .. imprimir nombre de metodo y parámetros por ejemplo, o lo más parecidos a lo que sería la implementación real del método.

Tú mismo.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #6 (permalink)  
Antiguo 26/11/2012, 20:00
 
Fecha de Ingreso: octubre-2010
Mensajes: 219
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: test de clase abstracta

gracias por las respuestas!!me sirvierón.

Etiquetas: mockito, test, testjava
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:40.