Fitnesse與Spring MVC的集成有一個問題。Fitnesse的Spring MVC測試
我的用例測試認證:
我有一個通用的燈具,其加載Spring上下文:
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文件)配置。
我固定的代碼是:
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"));
}
}
的問題是,春天是不是能找到任何的WebApplicationContext。
org.springframework.beans.factory.BeanCreationException:錯誤 創建名稱爲 '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:否 [org.springframework.web.context.WebApplicationContext]類型的 排位豆找到 依賴性:預期至少1豆,其有資格作爲自動裝配 候選這種依賴性。依賴註釋: {@ org.springframework.beans.factory.annotation.Autowired(必需=真)}
我苗條夾具和我的測試Spring MVC中的唯一區別是,在我的測試MVC,我是在junit上下文中,我在Junit測試中啓用了此註釋:
@WebAppConfiguration
感謝您的幫助。
GenericSpringFixture中的此行用於啓用註釋===> beanFactory.autowireBeanProperties(this,AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE,true);我可以訪問我的所有服務,Repository,Component Via @Autowired,除了WebApplicationContext – Nabil
GenericSpringFixture。上下文建議沒有奏效,我無法將ClassPathXmlApplicationContext轉換爲WebApplicationContext – Nabil
對不起,我的錯沒有注意到beanFactory.autowireBeanProperties(this,AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE,true); – Hippoom