Spring boot 单元测试

本文展示了一个使用 Spring Boot 和 JUnit 进行单元测试的简单示例,演示了如何配置测试环境并运行一个基本的测试方法。

import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.junit.Test;

import com.lgsc.cjbd.BookApplication;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringBootTest(classes = BookApplication.class, webEnvironment = SpringBootTest.WebEnvironment.MOCK)
public class MyTest {
	
	@Test
	public void testGreen(){
		
	}
}


注意:类名千万别取 Test ,别问我为什么 T_T -> 狗血错误


### Spring Boot 单元测试教程及最佳实践 #### 了解Spring Boot 测试支持 Spring Boot 提供了丰富的测试支持,涵盖了多种常用的测试框架和工具,如 JUnit、Spring Test 和 Mockito 等。这些工具能够协助开发者高效地编写并执行不同种类的测试案例[^1]。 #### 配置构建文件以支持单元测试 为了使项目具备运行单元测试的能力,在 `build.gradle` 文件内需加入特定依赖项以及配置任务来指定采用 JUnit Platform 执行测试: ```groovy dependencies { ... testAnnotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } ``` 上述设置确保了 Lombok 的编译特性可以在测试环境中被利用到,并且指定了用于启动测试平台所需的库版本[^2]。 #### 编写简单的控制器层单元测试 创建一个新的 Java 类作为 API 控制器的功能性验证入口点。这里展示了一个基于 RESTful 设计模式的服务端点示例及其对应的单元测试方法实现方式: ```java // Controller Class Example @RestController @RequestMapping("/api/example") public class ExampleController { @GetMapping("/{id}") public ResponseEntity<String> getExample(@PathVariable String id){ return new ResponseEntity<>("Item with ID:" + id, HttpStatus.OK); } } // Unit Test For Above Controller Using MockMvc @SpringBootTest(webEnvironment = WebEnvironment.MOCK) @AutoConfigureMockMvc class ExampleControllerTest { @Autowired private MockMvc mockMvc; @Test void shouldReturnDefaultMessage() throws Exception { this.mockMvc.perform(get("/api/example/1")) .andExpect(status().isOk()) .andExpect(content().string(containsString("ID:1"))); } } ``` 这段代码展示了如何运用 `MockMvc` 对 HTTP 请求作出响应模拟操作,从而允许对 web 层逻辑进行隔离式的检验而不必真正发起网络请求[^3]。 #### 应用最佳实践建议 - **保持独立性**:每个测试应当尽可能减少对外部资源(数据库连接、远程服务调用等)的依赖程度; - **提高可读性和维护性**:遵循一致性的命名约定和技术栈标准,使得其他团队成员也容易理解所写的测试意图; - **注重性能效率**:避免不必要的初始化开销或冗余计算过程影响整体吞吐量表现;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值