junit

Iniciado por .rn3w., 14 Septiembre 2015, 02:34 AM

0 Miembros y 2 Visitantes están viendo este tema.

.rn3w.

tengo algunas preguntas sobre junit

1.- se hace testing de una funcion void?


2.- tengo un juego que tiene 4 niveles de sudokuPuzzle

es decir que para cada nivel utiliza diferentes matrices me refiero al tamanio,
para la matriz hay varios metodos que se utilizan en el juego

por ejemplo este:

public boolean numInCol(int col,String value) {
if(col < COLUMNS) { //solo tiene que ser menor
for(int row=0;row < ROWS;row++) {
if(board[row][col].equals(value)) {
return true;
}
}
}
return false;
}


mi pregunta es: si tengo que testear este mismo metodo para cada diferente nivel del juego?

.rn3w.

#1
descargar el codigo fuente de la siguiente direccion

https://mega.nz/#F!BYEjwC6A!9ghF7ueXYca2nIu-hMsnUQ

ya hice algunos test me ayudan a completar los test porfavor

~ Yoya ~

1 - Debes programar de una forma que tu código sea testeable.
2 - Si el método se comportara igual independientemente el tamanio de la MATRIX, entonces no tienes que hacer un test por cada nivel. Pero si se comporta diferente dependiendo del tamanio de la matrix, entonces tienes un problema de diseno, ya que tienes un método que hace muchas cosas, por lo tanto se dificulta desarrollar unit testing y tampoco el método puede llegar a ser reusable sin tener que hacerle modificaciones.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

.rn3w.

bueno muchas gracias por la ayuda !!!

viste el codigo fuente ?

lo baje de github y decidi hacer testing

hice algunos test pero no se como completarlo


se hacen test a los metodos void?

.rn3w.

alguien vio el codigo fuente?
ayuda ....

~ Yoya ~

No he visto el código fuente compa, y veo muy difícil de que alguien se siente a revisar el codigo fuente. Ahora, si escribes una pequenia porción de algo que te interese entonces si.

Cita de: Yoya
1 - Debes programar de una forma que tu código sea testeable.

Eso que cite es lo primero que debes entender, se programa pensando en como se programaran pruebas contra el código, de lo contrario la efectividad de los test va a ser baja y en algunos no se le podrá programar test.

Puede que alguien programe sin tener en mente programar pruebas contra el código. Y por lo tanto pueda que lo que programes no sea testeable.

En el caso del void o un método que retorne un objeto, si alguien no realizo el método pensando en realizar pruebas al codigo, entonces se dificultara sus pruebas.

Ahora, a un método void se le podría hacer unit test, ya sea verificando que este lance o no lance una excepción. Tambien se le podria hacer functional testing, ya que el metodo debe realizar algun cambio no, ya sea en la DB o en algun recurso, y se podria verificar que el cambio se haya realizado correctamente. Pero programar, y luego pensar en como se podria implementar las pruebas dificulta la creacion de test y su efectividad.

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.