使用junit测试springMVC项目提示ServletContext找不到定义错误

原文链接:https://blog.csdn.net/liu_gan/article/details/78400627

复制代码
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:dispatcher-servlet.xml"})
public class UserApplicationTest {
    private static final Log logger = LogFactory.getLog(UserApplicationTest.class);
    @Autowired
    private UserAccessDao userAccessDao;

    @Test
    public void test() {
        UserAccessEntity userAccess = userAccessDao.selectByPrimaryKey(1L);
        logger.info("userAccess ={}", JSON.toJSONString(userAccess));
    }

}
复制代码

跑test报错如下:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.servlet.ServletContext] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: 

解决:

其实提示很清楚就是找不到注入javax.servlet.ServletContext 的实例,明显就是没有web容器环境

解决办法就是配置web容器配置

为类添加注解 @WebAppConfiguration 即可。全部如下:

 

复制代码
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:dispatcher-servlet.xml"})
public class UserApplicationTest {
    private static final Log logger = LogFactory.getLog(UserApplicationTest.class);
    @Autowired
    private UserAccessDao userAccessDao;

    @Test
    public void test() {
        UserAccessEntity userAccess = userAccessDao.selectByPrimaryKey(1L);
        logger.info("userAccess ={}", JSON.toJSONString(userAccess));
    }

}
复制代码

 

posted @   知行-zhixing  阅读(617)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2016-05-27 url
点击右上角即可分享
微信分享提示