Integrar JUnit con Spring es bastante simple. Solo debes crear tu test y anotarlo con @RunWith(SpringJUnit4ClassRunner.class).
JUnit invocará la clase de referencia, en este caso ‘SpringJUnit4ClassRunner’.
SpringJUnit4ClassRunner se encargará de levantar el contexto de Spring, en este ejemplo tengo dos contextos, donde el segundo ‘sobreescribe’ al primero.
La configuración del contexto puedes pasarla con otra anotación de Spring @ContextConfiguration
Para inyectar un bean de Spring en el test deben marcarlo con @Autowired.
Spring buscará un bean definido con el mismo nombre del atributo y lo inyectará en tu test. Si queres forzar a Spring para que utilice un bean puedes utilizar @Qualifier
import java.util.ArrayList;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author gustavo
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/gp/applicationContext.xml", "/gp/applicationContextTesting.xml" })
public class TestWithSpring {
@BeforeClass
public static void setup() {
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.INFO);
//... configuracion de inicio
}
@Autowired
@Qualifier("_testSpringList")
private ArrayList _testSpringList; // spring inyectara este atributo
@Test
public void simpleTest() {
Assert.assertFalse(this._testSpringList.isEmpty());
for (Object s : this._testSpringList) {
System.out.println(s.toString());
}
}
@AfterClass
public static void endClazz() {
//...
}
}
En Spring tengo definido _testSpringList de esta manera:
<bean id="_testSpringList" class="java.util.ArrayList">
<constructor-arg>
<list>
<value>hi!</value>
<value>bye!</value>
</list>
</constructor-arg>
</bean>
Hi! If you find my posts helpful, please support me by inviting me for a coffee :)