springboot项目编写单元测试_springboot(十二):springboot单元测试、打包部署

本文介绍了在SpringBoot项目中如何编写单元测试,包括添加spring-boot-starter-test依赖,创建测试类并验证结果。同时,展示了MockMvc对Controller层测试的支持。接着,讨论了集成测试的配置,并提供了项目打包成jar的步骤,强调了使用nohup启动服务以保持后台运行。此外,还提到了将项目打包为war包的流程。
摘要由CSDN通过智能技术生成

单元测试

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

org.springframework.boot

spring-boot-starter-test

test

View Code

2、开发测试类

@RunWith(SpringRunner.class)

@SpringBootTestpublic classApplicationTests {

@Testpublic voidhello() {

System.out.println("hello world");

}

}

View Code

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

//简单验证结果集是否正确

Assert.assertEquals(3, userMapper.getAll().size());//验证结果集,提示

Assert.assertTrue("错误,正确的返回值为200", status == 200);

Assert.assertFalse("错误,正确的返回值为200", status != 200);

View Code

引入了MockMvc支持了对Controller层的测试,简单示例如下:

public classHelloControlerTests {privateMockMvc mvc;//初始化执行

@Beforepublic void setUp() throwsException {

mvc= MockMvcBuilders.standaloneSetup(newHelloController()).build();

}//验证controller是否正常响应并打印返回结果

@Testpublic void getHello() throwsException {

mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))

.andExpect(MockMvcResultMatchers.status().isOk())

.andDo(MockMvcResultHandlers.print())

.andReturn();

}//验证controller是否正常响应并判断返回结果是否正确

@Testpublic void testHello() throwsException {

mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))

.andExpect(status().isOk())

.andExpect(content().string(equalTo("Hello World")));

}

}

View Code

集成测试

pom需要添加以下的配置:

org.springframework.boot

spring-boot-devtools

true

org.springframework.boot

spring-boot-maven-plugin

true

View Code

打成jar包

springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。

在 IDEA 上 File--->Setting--->Project Structure

启动jar包命令

java -jar target/spring-boot-scheduler-1.0.0.jar

这种方式,只要控制台关闭,服务就不能访问了。下面我们使用在后台运行的方式来启动:

nohup java -jar target/spring-boot-scheduler-1.0.0.jar &

也可以在启动的时候选择读取不同的配置文件

java -jar app.jar --spring.profiles.active=dev

https://www.cnblogs.com/ityouknow/p/6834287.html

https://blog.csdn.net/weixin_40423572/article/details/80556043

打成war包

1、maven项目,修改pom包

jar

改为

war

2、打包时排除tomcat.

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-tomcat

provided

3、注册启动类

创建ServletInitializer.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。

public class ServletInitializer extendsSpringBootServletInitializer {

@OverrideprotectedSpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);

}

}

4、IntelliJ IDEA导出war包

点击“Build”,选择“Build Artifacts”...

部署

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值