背景:平常都是写功能,写业务代码忽略了对测试案例的理解,借此机会梳理记录一下测试案例中常用到的的几个注解。

一:@SpringBootTest
作用是加载ApplicationContext,启动spring容器。使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找@SpringBootApplication@SpringBootConfiguration注解的类。

常用的配置项如下:

  1. value 指定配置属性
  2. properties 指定配置属性,和value意义相同
  3. classes 指定配置类,等同于@ContextConfiguration中的class,若没有显示指定,将查找嵌套的@Configuration类,然后返回到SpringBootConfiguration搜索配置
  4. webEnvironment 指定web环境,可选值有:MOCK、RANDOM_PORT、DEFINED_PORT、NONE

webEnvironment详细说明:
MOCK 此值为默认值,该类型提供一个mock环境,此时内嵌的服务(servlet容器)并没有真正启动,也不会监听web端口。
RANDOM_PORT 启动一个真实的web服务,监听一个随机端口。 DEFINED_PORT
启动一个真实的web服务,监听一个定义好的端口(从配置中读取)。 NONE
启动一个非web的ApplicationContext,既不提供mock环境,也不提供真是的web服务

二:@RunWith
junit中的注解,当一个类用@RunWith注释或继承一个用@RunWith注释的类时,JUnit将调用它所引用的类来运行该类中的测试而不是开发者去在junit内部去构建它。

举例说明:


注意点:发现idea中springboot项目不加@RunWith仍然可以运行,所以比较疑问到底加不加,从网上获取到比较比较准确的说法如下:

标准测试类里是要有@RunWith的,作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则你需要为此在启动时写一堆的环境配置代码。你在IDEA里去掉@RunWith仍然能跑是因为在IDEA里识别为一个JUNIT的运行环境,相当于就是一个自识别的RUNWITH环境配置。但在其他IDE里并没有。
所以,为了你的代码能在其他IDE里边正常跑,建议还是加@RunWith

测试案例中@SpringBootTest与@RunWith**的含义相关推荐

  1. 编写优美的GTest测试案例

    使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下.GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身.如何在GTest框架下写出优美的测试案例,我觉得必须要做到: 案 ...

  2. 10.SpringBootTest测试类中引入Service,报空指针异常NullPointerException

    在测试类中引入了SysUserServiceImpl,在用该service调用getInfo()时,报空指针异常.搜索发现需要在测试类上加注解@RunWith(SpringRunner.class) ...

  3. Hadoop集群中HDFS的API测试案例以及MapReduce的多种提交Job方式案例

    这两个案例默认是hadoop集群环境已经搭建好以及IDEA环境也已经配置好 1.HDFS客户端测试案例 1.1.pom依赖 <?xml version="1.0" encod ...

  4. FULENT软件测试工程师头像,关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf...

    关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf 关于FLUENT 软件中湍流管道压降的测试报告 (介质为空气) 4 1.测试模型 (管道长2m,半径0. ...

  5. SpringBoot在使用测试的时候是否需要@RunWith?

    我们在使用SpringBoot进行测试的时候一般是需要加两个注解: @SpringBootTest 目的是加载ApplicationContext,启动spring容器. @RunWith 是一个测试 ...

  6. SpringBoot整合junit测试案例

    1.之前开发项目是不要求写单测的,最近公司管理严格需要对开发的功能编写单测,所以在此记录下springboot对junit的整合以及使用的方式 2.引入需要用到的依赖jar包,一般创建好springb ...

  7. 测试案例编写规范总结

    [适用对象] 所有业务线测试人员,各产品/系统测试负责人. [标准说明] 1.每条测试案例必须只包含一个验证点,不可以一个案例包含多个验证点: 2.每个用户故事(包括业务需求,内部优化需求,紧急变更需 ...

  8. springboot项目导入Redis依赖后在测试类中无法使用(RedisTemplate),报空指针

    问题描述: 在springboot项目导入Redis依赖后,在测试类中无法使用(RedisTemplate),报空指针 前提是都已经添加了注入注解: 添加了注解后还是会报错: 解决方法: 在启动类中加 ...

  9. 测试中如何管理外包质量_如何从测试自动化中实现价值

    如果几年前,质量管理部门都试图通过ROI指标来证明对测试的投资是合理的,那么现在情况发生了变化,是时候重新审视这个问题了.当实施连续测试,并且每天在不同的环境下以不同的角色运行多次测试自动化时,由于测 ...

最新文章

  1. linux下使用sort命令升序、降序、随机及组合方式排序方法
  2. IE 8兼容:meta http-equiv=X-UA-Compatible content=IE=edge / X-UA-Compatible的解释
  3. javascript设计模式-组合模式
  4. 启动Mysql时发生的一个关于PID文件错误问题
  5. C++类和对象学习总结
  6. Linux 系统应用编程——网络编程(高级篇)
  7. Android实现号码归属地查询
  8. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由
  9. c语言函数的参数是结构变量,何去运用结构体变量和结构的变量的指针作为函数的参数...
  10. LA 2218 Triathlon (Geometry, Half Plane Intersection)
  11. 用户环境变量_linux 初级3 环境变量命令env、set、export、declare的区别
  12. C语言实现链栈的创建、入栈、出栈、取栈顶、遍历......等基本操作(小白版详解)
  13. 百度程序员删库跑路被逮捕!
  14. 淘宝返利是怎么回事?是真的还是假的?
  15. 在未来的多云世界中,选择云服务提供商,需要考虑什么?
  16. HBase shell删除表失败:ERROR: Table user is enabled. Disable it first.
  17. msvcp100.dll 丢失的解决方法-msvcp100.dll 丢失怎么修复
  18. 【卫星轨道】初步学习,零散知识点
  19. UGUI优化之路- Image的Sliced优化
  20. 逆水寒服务器维护到什么时候,逆水寒11月1日更新到什么时候_维护到几点

热门文章

  1. 常见的压力面试题及面试技巧
  2. 使用scipy.integrate模块中的quad和dblquad方法分别进行单重积分和多重积分
  3. 2020-4-24 Open Web Application Security Project (OWASP)
  4. i7处理器好吗_英特尔酷睿i5处理器和i7有什么区别
  5. 区分Linux:eth0,eth1,eth2,lo
  6. YOLOv5的head详解
  7. 计算机新建怎么没有表格,为何我的电脑新建项目里没有EXCEL表格呢,
  8. 学习编程,以“上帝视角”创造和改变这个世界
  9. 怎么把html格式转换成数字,怎么把数字转变成文本格式
  10. 域名过期和域名赎回的知识介绍