浅谈SpringBoot在使用测试的时候是否需要@RunWith
作者:十八岁讨厌编程 发布时间:2022-12-19 04:14:14
标签: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:
来源:https://blog.csdn.net/zyb18507175502/article/details/128647518
0
投稿
猜你喜欢
- ErrorPageFilter的实际应用Spring框架错误页过滤器springboot提供了一个ErrorPageFilter,用来处理当
- 1.如图所示,Spring配置文件应该带有是树叶标识,但此处显示的为普通的properties文件2.选择Open Module Setti
- 为什么要重复造轮子你可能会问,Spring已经自带了全局异常拦截,为什么还要重复造轮子呢?这是个好问题,我觉得有以下几个原因装逼Spring
- 如图所示的效果相信大家都不陌生,我们可以使用很多种方法去实现此效果,这里自己采用CountDownTimer定时器简单封装下此效果,方便我们
- 唉!我还真是在面试中学习新东东啊,一个公司刚刚给了个测试,不过我很奇怪的是为什么web developer的职位居然考java的反射机制题,
- 一、前言(吐槽+煽情+简介) &n
- 最近一直在对接接口,上游返回的都是 JSON 数据,我们需要将这些数据进行保存,我们可以解析成 Map 通过 key 的方式进行获取,然后
- 介绍Java命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以进行参数化,并支持请
- 在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1、什么是SQLite 2、Android中使用SQL
- 背景最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上
- [LeetCode] 159. Longest Substring with At Most Two Distinct Characters
- BeanUtils.copyProperties无法封装使用BeanUtils.copyProperties(user, memeber);
- 前言当你编写一个应用时,你通常都会希望用户能够定制化他们和应用交互的方式,以及应用与系统进行交互的方式。这种方式通常被称为 &ldq
- 生成指定范围内的随机数这个是最常用的技术之一,程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数
- 缘起:去年(大三上学期)比较喜欢写小游戏,于是想试着写个迷宫试一下。程序效果:按下空格显示路径:思考过程:迷宫由一个一个格子组成,要求从入口
- 注释介绍@Cacheable@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable 作用
- 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便、快捷。但是当时并没有认真的去学习下,毕竟感觉
- Handler是什么?Handler 是一个可以实现多线程间切换的类,通过 Handler 可以轻松地将一个任务切换到 Handler 所在
- 前言在项目中,如果我们要遵循分层领域模型规约: 话,肯定避免不了在DTO、VO、BO、AO、VO、Query等实体的转换,我们通常有几种做法
- 前言在Web应用开发过程中,一般都涵盖一些常用功能的实现,如数据库访问、异常处理、消息队列、缓存服务、OSS服务,以及接口日志配置,接口文档