【发布时间】:2011-11-20 06:08:02
【问题描述】:
我想为我的网络应用程序进行测试,但上下文配置在自动装配 servletContext 时崩溃。下面的错误。当我在 tomcat/jetty 上运行 web-app 时,自动装配 servletContext 效果很好。
java.lang.IllegalStateException: 无法加载 ApplicationContext ... 引起:org.springframework.beans.factory.BeanCreationException: 创建名为“testController”的bean时出错:注入自动装配 依赖失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:不能 自动装配字段:私有 javax.servlet.ServletContext com.test.controllers.TestController.servletContext;嵌套异常 是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 找到类型为 [javax.servlet.ServletContext] 的匹配 bean 依赖项:预计至少有 1 个符合自动装配条件的 bean 这种依赖的候选人。依赖注解: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class FirstTest {
@Test
public void doTest() throws Exception {
// ...
}
}
测试控制器
@Controller
public class TestController {
@Autowired
private ServletContext servletContext;
...
}
【问题讨论】:
-
谢谢。如何将
MockServletContext与@ContextConfiguration一起使用? -
只需在
applicationContext.xml文件中包含MockServletContext的定义
标签: unit-testing spring spring-mvc