Cómo utilizar Junit para probar proyectos javaweb
Uno: crear una clase de prueba. Se recomienda colocar la clase de prueba en un paquete separado (hay una ubicación de almacenamiento dedicada para la clase de prueba en el proyecto maven) y crear una nueva clase de caso de prueba Junit. , ¿cuál es el siguiente paso?
Se recomienda nombrar la clase de prueba como el nombre de la clase que desea probar + Prueba, luego hacer clic en Examinar para seleccionar la clase que desea probar (generalmente elija Servicio, porque el Servicio se centra en las necesidades comerciales ), use esto La clase de prueba creada de esta manera puede generar automáticamente la clase a probar, y solo necesita escribir el código de prueba.
@Test
public void testqueryById(){
}@Test
public void testQueryAll(){
}@Test
public void testReduceNumber(){
}123456789101112
Si hay algún código generado automáticamente allí, simplemente elimínelo o coméntelo out...
Dos: configurar la integración de spring y junit, iniciar junit cargar el contenedor springIOC, aquí necesita el paquete jar spring-test. Aquí necesita el paquete jar Spring-test.
> @RunWith(SpringJUnit4ClassRunner.class) //indicar el archivo de configuración de junitspring
@ContextConfiguration(locations = {" classpath:spring/spring-dao.xml"})123
De manera similar, en En la clase de prueba, llamaremos a la lógica del servicio. Debido a que usamos el marco de persistencia Spring + SpringMVC +, necesitamos inyectar una interfaz IService (aquí probé DAO directamente)
@Autowired
.private SeckillDao seckillDao; 12
La siguiente es la lógica de prueba. Antes de escribir el código de prueba, se recomienda sobrecargar el método toString en la entidad; de lo contrario, la impresión será problemática.
@Test public void testqueryById(){ long id = 1000;
Seckill seckill = seckillDao.queryById(id);
System.out.println( seckill .getSeckillName());
System.out.println(seckill);
}
}//JAVA no mantendrá registros de parámetros formales. Entonces, si pasa varios parámetros a dao, debe declarar los parámetros reales correspondientes a los parámetros formales de dao; de lo contrario, la JVM mostrará que no se puede encontrar el parámetro.
El método de declaración se presentará más adelante
@Test public void testQueryAll(){
List
Lista
System.out.println(seckill); p >
}
}
@Test public void testReduceNumber(){
Fecha killTime = new Fecha( ); aumentado, siempre que se agregue un dato a la base de datos, asumiremos que el método se ejecutó con éxito
int updateCount = seckillDao.reduceNumber(1000L, killTime);
System.out.Println( "actualizarCount")
System.out.Println( "actualizarCount"
System.out.Println( "actualizarCount"); >
System.out.Println( "updateCount")println( "updateCount = "+updateCount);
}123456789101112131415161718192021222324
Resuelva el problema de que JAVA no puede guardar registros de parámetros formales
int reduceNumber(@ Param(" seckillId")long seckillId,@Param("killTime")Date killTime);
Seckill queryById(long seckillId);/** p>
* Consulta de paginación Mysql
* @ param offset le indica los parámetros formales reales
* @param limit
* @return
*/
List
El siguiente El paso es comparar el resultado que devuelve con lo que queremos. Los resultados coinciden. Las clases de prueba no requieren proyectos de implementación, el ciclo de prueba es muy corto y se pueden realizar pruebas especiales. La lógica del código de la clase de prueba es muy simple y casi libre de errores. Si los resultados no son los que esperaba, modifíquelos para adaptarlos a sus necesidades.
Por supuesto, tiene grandes limitaciones. Con las pruebas unitarias no se puede saber qué está mal con la entrega de la página y muchos proyectos no se comportan como lo hacen en el servidor.
Entonces, ¿cuándo usamos junit?
Junit es una herramienta más conveniente que la depuración cuando las operaciones de su base de datos son muy complejas y no está seguro de poder generar los valores requeridos.
O, si es nuevo en la depuración, la probabilidad de errores es muy alta y no necesita probar específicamente el rendimiento del proyecto en el servidor, ¡junit es una herramienta imprescindible para usted! ¿Y el código de prueba de la clase de prueba tiene una alta reutilización...?
Si los datos no coinciden con las expectativas, modifique la lógica de negocios; de lo contrario, revise la página en busca de errores. Junit nos libera del estrés de depurar el código comercial, permitiéndonos concentrarnos en resolver puntos únicos de error.