浅谈SpringBoot在使用测试的时候是否需要@RunWith

 更新时间:2023年01月15日 09:07:39   作者:十八岁讨厌编程  
本文主要介绍了浅谈SpringBoot在使用测试的时候是否需要@RunWith,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

我们在使用SpringBoot进行测试的时候一般是需要加两个注解:

@SpringBootTest

  • 目的是加载ApplicationContext,启动spring容器。

@RunWith

  • 是一个测试启动器,可以加载SpringBoot测试注解
  • 让测试在Spring容器环境下执行。如测试类中无此注解,将导致service,dao等自动注入失败

但是我们有时候在使用的时候会发现不需要@RunWith注解,也可以运行测试类。在网上查了很多资料,有很多人说是IDEA编译器的原因,暂且不说他们说的是否正确,我发现的原因与他们并不一样。

我发现根本原因是:@Test的导包问题

我们在使用@Test实际上有两个导包选择:

如果我们使用的是org.junit.jupiter.api包下的Test注解,那么我们是不需要@RunWith注解的。

而如果我们使用的是org.junit包下的Test注解,那么就需要@RunWith注解,如果我们不使用的话会出现空指针的情况:

这个启动器使用SpringJUnit4ClassRunner或者SpringRunner都可以。

实际上SpringRunner继承了SpringJUnit4ClassRunner:

 到此这篇关于浅谈SpringBoot在使用测试的时候是否需要@RunWith的文章就介绍到这了,更多相关SpringBoot @RunWith内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中比较抽象类与接口的异同

    Java中比较抽象类与接口的异同

    大家好,本篇文章主要讲的是Java中比较抽象类与接口的异同,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • SpringMVC 拦截器的使用示例

    SpringMVC 拦截器的使用示例

    这篇文章主要介绍了SpringMVC 拦截器的使用示例,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-04-04
  • Java设计模式之抽象工厂模式简析

    Java设计模式之抽象工厂模式简析

    这篇文章主要介绍了Java设计模式之抽象工厂模式简析, 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象,他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构,需要的朋友可以参考下
    2023-12-12
  • 基于rocketmq的有序消费模式和并发消费模式的区别说明

    基于rocketmq的有序消费模式和并发消费模式的区别说明

    这篇文章主要介绍了基于rocketmq的有序消费模式和并发消费模式的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java Excel透视表相关操作实现代码

    Java Excel透视表相关操作实现代码

    这篇文章主要介绍了Java Excel透视表相关操作实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot使用AES对JSON数据加密和解密的实现方法

    SpringBoot使用AES对JSON数据加密和解密的实现方法

    这篇文章主要介绍了SpringBoot使用AES对JSON数据加密和解密的实现方法,文章通过代码示例介绍的非常详细,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-08-08
  • 使用idea开发Servlet详细图文教程

    使用idea开发Servlet详细图文教程

    这篇文章主要给大家介绍了关于使用idea开发Servlet的相关资料,将idea添加servlet的过程其实非常简单,只需要按照以下几个步骤即可完成,需要的朋友可以参考下
    2023-10-10
  • 解析ConcurrentHashMap: put方法源码分析

    解析ConcurrentHashMap: put方法源码分析

    ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment的结构和HashMap类似,是一种数组和链表结构,今天给大家普及java面试常见问题---ConcurrentHashMap知识,一起看看吧
    2021-06-06
  • Java Condition条件变量提高线程通信效率

    Java Condition条件变量提高线程通信效率

    这篇文章主要介绍了Java Condition条件变量提高线程通信效率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java技术汇总

    Java技术汇总

    本篇文章主要对Java基本知识点和技术点的一些看法和介绍,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03

最新评论