Necesitas sugerencias para empezar a trabajar con Junit.

No he usado Junit antes y no he hecho pruebas de unidad automáticamente.

Guión: Estamos cambiando nuestros DAO de backend de Sql Server a Oracle. Así que en el lado de la base de datos todos los procedimientos almacenados se convirtieron a Oracle. Ahora, cuando nuestro código llama a estos procedimientos almacenados de Oracle, queremos asegurarnos de que los datos devueltos sean los mismos en comparación con los procedimientos almacenados del servidor SQL.

Así, por ejemplo, tengo el siguiente método en un DAO:

  //this is old method. gets data from sql server
  public IdentifierBean getHeadIdentifiers_old(String head){
      HashMap parmMap = new HashMap();
      parmMap.put("head", head);
      List result = getSqlMapClientTemplate().queryForList("Income.getIdentifiers", parmMap);
      return (IdentifierBean)result.get(0);
   }
  //this is new method. gets data from Oracle  
  public IdentifierBean getHeadIdentifiers(String head){
      HashMap parmMap = new HashMap();
      parmMap.put("head", head);
      getSqlMapClientTemplate().queryForObject("Income.getIdentifiers", parmMap);
      return (IdentifierBean)((List)parmMap.get("Result0")).get(0);
   }

Ahora quiero escribir un método de prueba Junit que llame primerogetHeadIdentifiers_old y entoncesgetHeadIdentifiers y compararía el Objeto devuelto (tendrá que sobrescribir iguales y hash enIdentifierBean). La prueba pasaría solo cuando ambos objetos son iguales.

En el método de prueba, tendré que proporcionar un parámetro (encabezado en este caso) para los dos métodos ... esto se hará manualmente por ahora. Sí, desde el principio, los parámetros podrían ser diferentes y los SP podrían no devolver los resultados exactos para esos parámetros. Pero creo que tener estos casos de prueba nos dará un poco de alivio que devuelvan los mismos datos ...

Mis preguntas son:

¿Es este un buen enfoque?Tendré múltiples DAO's. ¿Escribo los métodos de prueba dentro de la propia DAO o para cada DAO debo tener una clase de prueba JUnit separada?(podría ser una pregunta n00b) ¿se ejecutarán automáticamente todos los casos de prueba? No quiero ir al frente, haga clic en un montón de cosas para que se active la llamada a la DAO.Cuando se ejecuten las pruebas, ¿descubriré qué métodos fallaron? y para los que fallaron, ¿me dirá el método de prueba que falló?Por último, ¿algún buen punto de partida? Cualquier tutorial, artículos que muestren trabajar con Junit.

Respuestas a la pregunta(4)

Su respuesta a la pregunta