User Tools

Site Tools


java:junit4

This is an old revision of the document!


JUnit4

Desde que empecé a estudiar esto del java, hace unos dos años, han cambiado muchas cosas, y se nota por el perfil de este artículo que voy a escribir. Mientras que antes hablaba de cómo se manejaba un fichero, o cómo se conectaba a una base de datos usando jdbc, ahora vamos a ir a un tema muy específico: integrar JUnit4 con Spring 3.0.2 y con Eclipse Helios.

Introducción

Los que hayais intentado integrar JUnit 4 con Spring 3.0.2 tendreis dos opiniones del asunto: 1) es tremendamente fácil, no tiene sentido este artículo y 2) ¿Porqué demonios hay tanto material en internet –incluso en la propia web de Junit y de Spring y nada me funciona??? ¿qué demonios estoy haciendo mal???

Y la tercera pregunta ¿Porqué el testSuite que me he creado para Junit no me funciona???

Vamos por partes, queridos amigos.

El ejemplo

Comenzaremos por configurar Eclipse Helios para que acepte JUnit 4 y nada más:

  • Haremos click con el botón derecho sobre el icono del proyecto y seleccionaremos “propiedades”
  • En la opcion “Java Build Path” seleccionaremos “Libraries”
  • click en “add library”: seleccionar JUnit y luego JUnit4

Luego, dentro de la carpeta de los fuentes –“src” en mi caso–, crearemos un nuevo paquete para alojar las clases de los tests.

Regla 1: dentro de este paquete tiene que haber una copia del fichero applicationContext.xml de Spring. No me pregunteis porqué, pero en mi ejemplo lo va a buscar ahí, y no hay manera de hacerle desistir. ¿A lo mejor es porque dice el manual que lo buscará sólamente en el CLASSPATH?? puede ser….

Usuarios de linux: para mantener una única copia del fichero applicationContext.xml se puede crear un enlace virtual. Viva Linux!!!

Y ahora creamos nuestro primer test.

Primer error: creando el primer test

Ingenuo de mí, pensé que si configuraba eclipse para que usara la librería de JUnit4, crearía tests para JUnit4…. ¡Qué ingenuo, madre!!!! Los muchachos de eclipse.org aún no se han dado cuenta y el asistente de eclipse crea solamente test para JUnit 3.x.

Regla 2: los tests hay que escribirlos A MANO. Olvidaros de asistentes y otras chorradas. A MANO ¿He dicho ya que los tests hay que escribirlos a mano??? Pues eso, que los escribais a mano.

Aquí os pongo un test de ejemplo que he escrito A MANO leyendo de aquí y de allí en internet.

package test;
 
 
import htmlCleaner.htmlElement; 
 
 
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
 
 
 
@ContextConfiguration(locations={"applicationContext.xml"})
public class HTMLElementTest extends AbstractJUnit4SpringContextTests
{
	// just for using AbstractJUnit4springContextTests 
	// we have the applicationContext instance variable 
	// will access to the instance of the Application 
	// Context
 
	// this instance will be dependency injected by name
	@Autowired
	private htmlElement element; 
 
	@Before
	public void heating() throws Exception
	{
		System.out.println("hello setup method");
	}
 
	@After
	public void cooling() throws Exception
	{
		System.out.println("goodbye setup");
	}
 
	@Test
	public void testATest()
	{
		System.out.println("hello spring");
		element.setIdAndContent( -1, new StringBuilder("hola") );
	}
 
}
java/junit4.1280528579.txt.gz · Last modified: 2022/12/02 22:02 (external edit)