Autor Tema: Como crear test con Junit en java  (Leído 13722 veces)

Eva

  • Sin experiencia
  • *
  • Mensajes: 23
    • Ver Perfil
Como crear test con Junit en java
« en: 26 de Septiembre 2012, 14:36 »
Hola a todos!!!
Tengo un sistema de tareas desarrollado en java y necesito hacer test con junit sobre estos.
Para eso cuento con una clase Tarea cuyos atributos son: usuario,titulo,subtarea,etc; y otra clase llamada Usuario con atributos nombre y numero.
Mi problema es que deberia probar que un usuario pueda hacer varias tareas y cada tarea pueda ser realizada por varios usuarios (es decir que es una relacion N:N) y demostrar que el atributo subtarea es una tarea en si misma, y definitivamente no se como hacerlo...
Espero que me puedan ayudar!!!!!!!
« Última modificación: 12 de Septiembre 2014, 17:57 por Alex Rodríguez »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:Como crear test en java
« Respuesta #1 en: 26 de Septiembre 2012, 17:07 »
Hola Eva, no soy experto en JUnit  :-[ pero voy a tratar de aportar alguna idea a ver si te sirve.

Voy a suponer algunas cosas porque con la explicación que has dado no tengo claro cómo tienes organizado el código.

Voy a suponer que dentro de la clase Tarea existe un método boolean esTarea(Tarea t)  { ... } que devuelve true si un objeto es una tarea y false si no es una tarea.

Voy a suponer que dentro de la clase Usuario tienes un método que se llame void hacerTarea (Tarea t) { ... } que da lugar a que el usuario haga una tarea.

Ahora sobre la clase Usuarios tendríamos que crear una clase de prueba de JUnit, por ejemplo UsuariosTest. Dentro de esa clase tendríamos el código en un método donde generamos un usuario y varias tareas y hacemos que ese usuario ejecute esas varias tareas, e igualmente tendríamos otro método donde generamos varios usuarios y una tarea y hacemos que esos varios usuarios ejecuten esa tarea.

Finalmente crearíamos un método donde creamos una tarea y consultamos mediante el método esTarea (Tarea t) si el atributo subtarea es una tarea en sí misma. Como en este método no simplemente estamos esperando "que se pueda ejecutar" sino un resultado concreto tendríamos que añadir una línea final donde se especifique la aserción de lo que queremos conseguir, por ejemplo:

assertEquals (true, objetoTareaCreado.esTarea(objetoTareaCreado.getSubtarea());

La llamada a assertEquals controla que el valor devuelto por el método coincida con el resultado esperado y de esa manera JUnit sabe si se obtiene un "resultado ok" o no.

Finalmente, una vez tienes la clase de prueba creada y los métodos de prueba, tendrías que ejecutarlos (por separado o conjuntamente) y verificar que JUnit te devuelve el resultado esperado para todos ellos.

Claro que para hacer esto hay que conocer el manejo básico de JUnit que normalmente está integrado con los IDEs (Eclipse, NetBeans, BlueJ, etc.) pero en cada IDE las herramientas que incorpora pueden ser un poco distintas, el concepto de aserción, etc.

Espero te sirva!  :D

Eva

  • Sin experiencia
  • *
  • Mensajes: 23
    • Ver Perfil
Re:Como crear test en java
« Respuesta #2 en: 26 de Septiembre 2012, 21:10 »
Buenisimo... Me sirve un monton y se agradece
Yo en teoria lo tenia pensado de la misma manera pero no terminaba de encontrar la forma de como hacerlo, asi que ya lo pongo en practica.
Mi codigo es basico asi que cualquier cosa lo comparto..

Gracias nuevamente :D!

Eva

  • Sin experiencia
  • *
  • Mensajes: 23
    • Ver Perfil
Re:Como crear test en java
« Respuesta #3 en: 26 de Septiembre 2012, 23:28 »
Estuve probando lo que me sugirieron e hice lo siguiente:
public void testUsuarioQueRealizaVariasTareas(){
             Usuario user = new Usuario("Rasmus",20);
             Usuario usur = new Usuario("Telio",51);
             Tarea responderConsultas= new Tarea("18/06/1978","AtencionClientes","RespuestasAConsultas");         
             Tarea relevarPrecios= new Tarea("30/08/1969","Pedidos","ControlarPrecios");
               
             user.hacerTarea(responderConsultas);
             usur.hacerTarea(responderConsultas);
         }

como deberia hacer el Assert???
Usuario es una clase al igual que Tarea y el metodo hacerTarea recibe un string

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:Como crear test en java
« Respuesta #4 en: 27 de Septiembre 2012, 10:49 »
Yo creo que en este caso no tienes que tener Assert. Con JUnit tendríamos dos tipos de pruebas:

a) Las pruebas en que comprobamos que algo se ejecuta, que creo que es el caso tuyo en el método que has puesto. Tu objetivo es probar que una tarea puede ser realizada por más de un usuario, entonces si el método se ejecuta ya JUnit te dirá "Successfull" o "Exito", es decir, se cumple el objetivo de la prueba.

b) Las pruebas en que comprobamos que un resultado coincide con el resultado esperado. Por ejemplo cuando tengas que verificar que una subtarea es una tarea el resultado esperado será no solo que se ejecute la comprobación sino que la comprobación dé como resultado "true", es decir, que lo esperado es que una subtarea sea una tarea. Entonces sí tienes que meter el assert para indicarle a JUnit que el verifique que el resultado obtenido es igual al esperado. Y JUnit no te dirá "éxito" simplemente porque se ejecute el método, sino que tendrá que ejecutarse y el resultado coincidir con el que tú le digas en el assert.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".