Olá pessoal,
É o seguinte:
Estou tentando executar alguns testes unitários em “minha aplicação”, mas estou tendo problemas com o Spring.
Este é o arquivo de configuração do Spring:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config/>
<context:component-scan base-package="br.com.vivo" />
</beans>
Como vocês podem ver, eu estou usando annotations para injeção de dependencias do Spring.
Trata-se de uma palicação web, e por isso ela roda num container (no meu caso, no tomcat). Na verdade, o próprio tomcat é quem se encarrega de configurar o contexto da aplicação.
String ICName = SelectorContext.IC_PREFIX + tomcat.appContext.toString();
javax.naming.Context initialContext = new NamingContext(null, ICName);
Rodando no browser, as dependencias são injetadas corretamente, pois o tomcat, ao ser “startado” faz as configurações necessárias para que, no momento das injeções, o contexto já esteja configurado. No caso do JUnit, essas configurações não são feitas, e a árvore de dependências é quebrada.
Esta é a minha classe de testes:
package br.com.vivo.test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import br.com.vivo.facade.TrocarAreaRegistroFacade;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring/nfo_application-context.xml"})
public class SimpleTest extends AbstractDependencyInjectionSpringContextTests{
@Autowired
private TrocarAreaRegistroFacade trocarAreaRegistroFacade;
public void testInit(){
assertNotNull(trocarAreaRegistroFacade);
}
}
Espero ter sido claro.
Alguém tem uma sugestão para criar/executar testes unitários neste cenário?
Agradeço desde já.