У меня проблема с интеграцией Fitnesse с Spring MVC.
Мой вариант использования для проверки - аутентификация:
У меня есть общий Fixture, который загружает Spring Context:
public abstract class GenericSpringFixture extends GenericBelFixture {
protected static AutowireCapableBeanFactory beanFactory;
protected static ClassPathXmlApplicationContext context;
static {
initSpring();
}
public static void initSpring() {
if ((context == null) || !context.isActive()) {
context = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-fitnesse-common.xml");
beanFactory = context.getAutowireCapableBeanFactory();
}
}
public GenericSpringFixture() {
beanFactory.autowireBeanProperties(this, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);
}
public static AutowireCapableBeanFactory returnBeanFactory() {
return beanFactory;
}
}
Файл applicationContext-fitnesse-common.xml загружает все зависимости My plateform, включая конфигурацию моего сервлета (Spring Mvc Files).
Мой код приспособления:
public class IdentificationUtilisateur extends GenericSpringFixture{
@Autowired
private WebApplicationContext webApplicationContext;
@Autowired
private FilterChainProxy springSecurityFilterChain;
private MockMvc mockMvc;
public void seLogerAvecIdentifiantEtMotDePasse(String identifiant,
String motDePasse) {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(this.webApplicationContext)
.addFilters(this.springSecurityFilterChain).build();
}
public void accesReussi() throws Exception{
mockMvc.perform(
post("/j_spring_security_check")
.param("j_username", "bilal")
.param("j_password", "Pa1234567"));
}
}
Проблема в том, что Spring не может найти какой-либо webApplicationContext.
org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем «ma.awb.ebk.bel.web.fixture.authentication.IdentificationUtilisateur»: не удалось внедрить автоматически связанные зависимости; вложенным исключением является org.springframework.beans.factory.BeanCreationException: не удалось автоматически связать поле: частный org.springframework.web.context.WebApplicationContext ma.awb.ebk.bel.web.fixture.authentication.IdentificationUtilisateur.webApplicationContext; вложенным исключением является org.springframework.beans.factory.NoSuchBeanDefinitionException: для зависимости не найдено подходящего bean-компонента типа [org.springframework.web.context.WebApplicationContext]: ожидается по крайней мере 1 bean-компонент, который квалифицируется как кандидат autowire для этой зависимости. Аннотации зависимостей: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Единственная разница между прибором My Slim и моим тестовым Spring mvc заключается в том, что в моем тестовом MVC я нахожусь в контексте junit, и у меня включена эта аннотация в моем тесте Junit:
@WebAppConfiguration
Спасибо за вашу помощь .