资讯专栏INFORMATION COLUMN

Spring Boot - 单元测试(Junit4&Mockito)

raoyi / 3396人阅读

摘要:当面讲给你听讲堂地址,或许是最实用的教程,新课促销中,只要你敢来,保你收货满满。优惠报名全程撸码快速入门教程全原价,优惠价全程撸码进阶全原价,优惠价

回顾

Spring Boot - 初识 Hello World

Spring Boot - Servlet、过滤器、监听器、拦截器

Spring Boot - 静态资源处理、启动加载、日志处理

Spring Boot - 部署Deploy

Spring Boot - 整合jsp后必须通过spring-boot:run方式启动?

Spring Boot - 为什么整合jsp后必须通过spring-boot:run方式启动?

Spring Boot - 自定义启动banner

Spring Boot - 表单校验(JSR303&Hibernate Validator)

为什么要做单元测试?现状

不知道怎么编写单元测试

项目没有要求,所以不编写

单元测试价值不高,完全是浪费时间

业务逻辑比较简单,不值得编写单元测试

不管怎样,集成测试将会抓住所有的 bug,用不着进行单元测试

在项目的前期还是尽量去编写单元测试,但是越到项目的后期就越失控

为了完成编码任务,没有足够的时间编写单元测试

工具(一):Junit4

注解的使用

@Test

@Before @After

@BeforeClass @AfterClass

工具(二):spring-boot-starter-test

注解的使用

@RunWith(SpringRunner.class)

@SpringBootTest

断言:对结果进行验证

Assert

模拟HTTP环境

注解:@AutoConfigureMockMvc

工具类:MockMvc(3步)

perform:执行一个RequestBuilder请求,会自动执行SpringMVC的流程并映射到相应的控制器执行处理;

MockMvcRequestBuilders提供了get/post/put/delete/upload等http请求的方式

提供了header/contentType/cookie/characterEncoding/params等设置request参数的方式

ResultActions

andExpect:添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确;

andDo:添加ResultHandler结果处理器,比如调试时打印结果到控制台;

andReturn:最后返回相应的MvcResult;然后进行自定义验证/进行下一步的异步处理;

MvcResult(自定义Assert)

getModelAndView:获得控制层设置的ModeAndView对象

getResponse:获得最终响应结果

工具(三):Mockito

打桩:实际上就是对接口、类、方法、参数、返回值进行伪造或者模拟。

ReflectionTestUtils

注解的使用

@Mock:真实对象的替代品

@Spy:被测试对象需要一部分被执行、一部分被mock,需要用spy对目标对象进行包装

thenReturn与doReturn差异

语法:

when-thenReturn

when(obj.method()).thenReturn(returnValue)

doReturn-when

doReturn(returnValue).when(obj).method()

差异

API Mock Obj Spy Obj
when-thenReturn ×
doReturn-when × ×

总结

本文详细的讲解了Junit,Mockito,以及spring boot的测试工具,相信各位看官老爷一定还想了解更多详细内容和使用技巧。

??当面讲给你听?? 讲堂地址,或许是最实用的教程,新课促销中,只要你敢来,保你收货满满?。

优惠报名 【全程撸码】Spring Boot 1.5 快速入门教程(全)(原价:28,优惠价:22) 【全程撸码】Spring Boot 进阶(全)(原价:46,优惠价:39)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67731.html

相关文章

  • 3.springboot单元测试

    摘要:单元测试因为公司单元测试覆盖率需要达到,所以进行单元测试用例编写。测试的时候可以把每个判断分支都走到。同这句代码,可以通过如此一个对象,使用以上方法基本上可以编写所有代码的测试类。编写测试一定程度上可以发现代码错误,可以借此重构代码。 3.springboot单元测试因为公司单元测试覆盖率需要达到80%,所以进行单元测试用例编写。多模块项目的因为会经常调用其他服务,而且避免数据库操作对...

    anRui 评论0 收藏0
  • Spring Boot 单元测试二三事

    摘要:但是,一个好的单元测试应该是毫秒级的,否则这会影响的工作方式,这也就是测试驱动开发的思想。在单元测试中,我们可以像这样来构建一个实例。所以,我们在写单元测试的时候,应该以一种更简单的方式去构建。 本文翻译自:https://reflectoring.io/unit-...原文作者:Tom Hombergs 译文原地址:https://weyunx.com/2019/02/04... ...

    xbynet 评论0 收藏0
  • ABAP和Java SpringBoot单元测试

    摘要:在类里,本地类里用关键字声明过的方法,在单元测试启动后会自动被调用到。在及的设定思路里,放在路径下面以结尾的类会被当成单元测试类处理。 ABAP 在ABAP类里,本地类(Local Class)里用关键字FOR TESTING声明过的方法,showImg(https://segmentfault.com/img/remote/1460000016898407); 在单元测试启动后会自动...

    fireflow 评论0 收藏0
  • SpringSpring Boot和TestNG测试指南 - 使用Mockito

    摘要:例子使用源代码我们先给了一个的实现然后又规定了方法的返回值。源代码也就是说,得益于,我们能够很方便地对依赖关系中任意层级的任意做。 Github地址 Mock测试技术能够避免你为了测试一个方法,却需要自行构建整个依赖关系的工作,并且能够让你专注于当前被测试对象的逻辑,而不是其依赖的其他对象的逻辑。 举例来说,比如你需要测试Foo.methodA,而这个方法依赖了Bar.methodB,...

    Alliot 评论0 收藏0
  • java开发程序员需要用到的库和框架有哪些

    摘要:框架是和应用程序的另一个测试和规范框架。它是为应用程序编写自动测试的最有用的库之一。数据库是许多应用程序包括核心和应用程序不可分割的一部分,可能是进行单元测试时的最大障碍。 作为一名Java开发人员,我们从事不同的领域,从编写核心Java代码到创建JSP页面、编写RESTAPI,有时甚至创建Groovy脚本以实现构建自动化...

    zhaochunqi 评论0 收藏0

发表评论

0条评论

raoyi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<