我对 Fitnesse Integration with Spring MVC 有疑问。
我要测试的用例是身份验证:
我有一个加载 spring Context 的通用 Fixture :
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 文件正在加载我的平台的所有依赖项,其中包括我的 servlet(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:创建名为“ma.awb.ebk.bel.web.fixture.authentication.IdentificationUtilisateur”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.springframework.web.context.WebApplicationContext ma.awb.ebk.bel.web.fixture.authentication.IdentificationUtilisateur.webApplicationContext;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.web.context.WebApplicationContext] found for dependency: 预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.
我的 Slim 夹具和我的测试 Spring mvc 之间的唯一区别是,在我的测试 MVC 中,我在一个 junit 上下文中,并且我在我的 Junit 测试中启用了这个注释:
@WebAppConfiguration
谢谢你的帮助 。