博文引用:springboot(十二):springboot如何测试打包部署

开发阶段


单元测试

Spring boot对单元测试的支持已经很完善了。

1 在pom包中添加Spring-boot-starter-test包引用

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

2 开发测试类

头部添加:@RunWith(SpringRunner.class)@SpringBootTest注解,在测试方法上添加 测试方法@Test即可。

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {@Testpublic void hello() {System.out.println("hello world");}
}

实际使用中,可以按照项目的正常使用注入dao层或是service层代码进行测试验证,spring-boot-starter-test提供很多基础用法,更难得的是增加了对Controller层测试的支持。

//简单验证结果集是否正确
Assert.assertEquals(3, userMapper.getAll().size());//验证结果集,提示
Assert.assertTrue("错误,正确的返回值为200", status == 200);
Assert.assertFalse("错误,正确的返回值为200", status != 200);

引入MockMvc支持对Controller层的测试,简单实例:

public class HelloControlerTests {private MockMvc mvc;//初始化执行@Beforepublic void setUp() throws Exception {mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();}//验证controller是否正常响应并打印返回结果@Testpublic void getHello() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}//验证controller是否正常响应并判断返回结果是否正确@Testpublic void testHello() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()).andExpect(content().string(equalTo("Hello World")));}
}

单元测试时验证你代码的第一道屏障,要养成每写一部分代码就进行单元测试的习惯,不要等到全部集成后进行测试,集成后因为更关注整体运行效果,很容易遗漏掉底层的bug。

集成测试

整体开发完成之后进入集成测试,spring boot 项目的启动入口在Application类中,直接运行run方法就可以启动项目,但是在调试的过程中我们肯定需要不断的去调试代码,spring boot 给出了对热部署的支持,很方便的在web项目中调试。

pom需要添加以下配置:

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
</dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork></configuration></plugin></plugins>
</build>

添加以上配置后,项目就支持了热部署,非常方便集成测试。

投产上线


Spring boot(十二):Spring boot 如何测试、打包、部署相关推荐

  1. SpringBoot(十二):springboot如何测试打包部署

    原文出处: 纯洁的微笑 有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投 ...

  2. Spring Boot基础学习笔记16:项目打包部署

    文章目录 零.学习目标 一.Web项目打包部署概述 二.Jar包方式打包部署 (一)添加Maven打包插件 (二)使用IDEA进行打包 (三)Jar包目录结构说明 (四)Jar包方式部署 1.在控制台 ...

  3. 第十二章课下测试补交博客

    第十二章课下测试补交博客 转载于:https://www.cnblogs.com/WYjingheng/p/8018560.html

  4. SRPG游戏开发(六十三)第十一章 地图动作与地图事件 - 十二 完善地图信息与测试(Perfect MapEventInfo and Testing)

    返回<SRPG游戏开发>导航 第十一章 地图动作与地图事件(Map Action and Map Event) 我们已经有了剧本,而且可以运行剧本,但我们还缺少对地图的操作控制. 我们这一 ...

  5. SpringBoot 如何测试打包部署

    SpringBoot 如何测试打包部署 有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试 ...

  6. (转)Spring Boot(十二):Spring Boot 如何测试打包部署

    http://www.ityouknow.com/springboot/2017/05/09/spring-boot-deploy.html 有很多网友会时不时的问我, Spring Boot 项目如 ...

  7. spring boot(十五)spring boot+thymeleaf+jpa增删改查示例

    快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency><groupId>org.springframework.bo ...

  8. Spring Boot系列二 Spring @Async异步线程池用法总结

    转载 自 https://blog.csdn.net/hry2015/article/details/67640534 1. TaskExecutor Spring异步线程池的接口类,其实质是java ...

  9. Spring Boot2 总结(二) Spring Security的基本配置

      Spring Boot对Spring Security提供了自动化配置方案,同时这也是在Spring Boot项目中使用Spring Security的优势,因此Spring Security整合 ...

  10. Spring 学习之 二----Spring创建对象的三种方式

    最近在系统的学习Spring,现在就Spring的一些知识进行总结. 我们知道Spring是一个开放源代码的设计层面的框架,他主要解决的是业务逻辑层与其他各层之间松耦合的问题. Spring 有三个核 ...

最新文章

  1. 连接状态_TCP 连接状态及相关命令学习
  2. Linux Kernel 5.0或在达成600万Git Objects时到来
  3. deepin V20 启用Nvidia驱动方法
  4. java级联添加_JavaWeb学习记录(十三)——商城购物之添加订单的数据库级联操作...
  5. scjp考试准备 - 4 - 关于数组
  6. 逻辑漏洞挖掘初步总结篇
  7. 修改pytho2安装插件的位置_office2016自定义安装以及修改安装位置
  8. 2018 支付宝Java开发四面:Ngnix+MQ队列+集群+并发抢购
  9. 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...
  10. 【opencv学习】Fast算法进行角点检测
  11. MySQL学习记录—Date函数系列
  12. 细致入微:如何使用数据泵导出表的部分列数据
  13. 微信公布7月朋友圈十大谣言 包括“奥运冠军杨倩被奖励1600万”等
  14. 【C++标准库】字符串
  15. 金格公司对致远HandWrite产品的测试地址
  16. 分布式定时任务开源方案
  17. protel dxp 2004电路仿真
  18. SAP会计借贷(转载)
  19. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读
  20. java.lang.RuntimeException: Parcel: unable to marshal value com.

热门文章

  1. Educational Codeforces Round 107 (Rated for Div. 2)
  2. HDU4612 Warm up
  3. [HEOI2016TJOI2016]排序(二分+线段树)
  4. P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治、暴力)
  5. ATcoder-Replace Digits【线段树】
  6. jzoj3301-[集训队互测2013]家族【并查集,暴力】
  7. ssl1597-石子合并问题【区间dp练习】
  8. 【交互】Omkar and the Meaning of Life(CF-1586D)
  9. 【DP】小学生语文题(jzoj 5102)
  10. 动态规划训练10 [Coloring Brackets CodeForces - 149D]