千家信息网

如何解决Spring boot整合Junit遇到的坑

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,小编给大家分享一下如何解决Spring boot整合Junit遇到的坑,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这是我
千家信息网最后更新 2025年11月16日如何解决Spring boot整合Junit遇到的坑

小编给大家分享一下如何解决Spring boot整合Junit遇到的坑,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    这是我在使用springboot整合Junit的时候遇到的坑

    1.在pom.xml中添加junit环境的依赖

        org.springframework.boot    spring-boot-starter-test

    2.在src/test/java下建立测试类

    例:

       @RunWith(value = SpringJUnit4ClassRunner.class)    @SpringBootTest(classes={Demo.class})  // **注意:启动类为自己编写的(这是个坑)**    public class serviceTest {        @Autowired        private serviceImpl serviceimpl;        @Test        public void testAdd() {            this.serviceimpl.add();        }    }

    3.自己编写的启动类

    @SpringBootApplicationpublic class Demo {public static void main(String[] args) {    SpringApplication springApplication = new SpringApplication(Demo.class);     // 这个是关闭springboot启动时候的图标可以不设置    springApplication.setBannerMode(Banner.Mode.OFF);     springApplication.run(args);}}

    说明:

    @RunWith:启动器 SpringJUnit4ClassRunner.class:让 junit 与 spring 环境进行整合

    @SpringBootTest(classes={App.class})

    1:当前类为 springBoot 的测试类

    2:加载 SpringBoot 启动类(启动类为自己编写的启动类(这是个坑))。启动SpringBoot

    SpringBoot 整合Junit测试注入Bean失败

    java.lang.IllegalStateException: Failed to load ApplicationContext

    问题描述

    我是在springboot整合测试的时候报错的。运行就是报各种bean找不到。

    版本:springboot-1.5.12 + junit4.12

    这个问题卡了半天才解决。从网上搜了若干个博客都试了,基本上都没有用。

    什么加@WebAppConfiguration这个注解啊,加那个注解的,全没用。

    下面是我的测试类

    11111

    解决过程

    我仔细观察了一下启动类,因为这个@SpringBootTest我是设置的启动类的。才发现原来注入的这些找不到的bean,实际上都是启动类当中使用依赖注入的对象。

    以下是我的启动类

    由此我推断,虽然springboot自带了扫描包(默认扫描规则就是启动类以上的子包),但是他可能是遵循java的由上而下执行代码规律,因为他毕竟是整合测试,他和直接从启动类启动项目是不一样的概念。在他要依赖注入这个对象的时候,而实际上这个对象并没有放到容器当中,这时候就会产生注入不成功。

    最终在启动类添加了一个@ComponentScan(basePackages = {"com.xjgx"})扫描全包。成功解决!

    在配置类上添加 @ComponentScan 注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 context:component-scan。

    总结

    springboot整合junit测试方法,实际上就这两个注解就可以了。

    @RunWith(SpringRunner.class)@SpringBootTest(classes = EhrApplication.class)public class EhrApplicationTest {        @Autowired        HealthExamReSerivice healthExamReSerivice;         @Test        public void contextLoads() {                     }}

    假如启动类使用到了依赖注入对象,这个时候需要在启动类上添加扫描包。

    @ComponentScan(basePackages = {"com.xjgx"})

    以上是"如何解决Spring boot整合Junit遇到的坑"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    整合 测试 时候 注解 对象 实际 实际上 篇文章 这是 成功 内容 就是 环境 问题 配置 不怎么 两个 代码 博客 启动器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发项目为啥着急上线 计算机网络技术应用简答题 厦门大学网络安全学院 服务器在boot配置中如何关机 dnf所有时装全服务器都有吗 数据库中的pid是什么意思 软件开发与技术基础答案 FTP服务器占用几个端口 计算机网络技术意义根据 神州安全视频服务器 北京物流软件开发中心 苏州嵌入式软件开发价格表 崇明区网络营销网络技术均价 强化网络安全预防网络沉迷ppt 数据库统一设计 阿里轻量云服务器 香港 新加坡 董文磊网络安全 附加数据库 错误5159 网络安全风险防范的重要性 网络安全的三道坎 中山电脑软件开发怎么样 小帮手服务器 福建常见软件开发成交价 怎样查论文是否被数据库收录 重保时期网络安全保障方案 绝对演绎服务器维护多长时间 磊科nw762改打印服务器 数据库连接串点 计算机网络安全专业学校 软件开发项目可行性分析
    0