SpringBootTest测试时不启动程序

在开发Spring Boot程序时,若要对某个方法进行单元测试,开发工具新建项目通常会自动生成单元测试单元。但默认配置下测试会启动程序,可修改代码避免启动,添加(classes=Tests.class)属性还能针对某些类做单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发spring boot 程序过程,如果要针对某个方法做单元测试。一般使用开发工具新建项目都会自动生成单元测试单元。但是默认情况下的配置在测试中会启动程序,如果不想要启动可以修改如下代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class ests {

}

上面代码意思是针对所有class进行扫描,添加(classes=Tests.class)属性可以针对某些类做单元测试。

### 使用 `@SpringBootTest` 进行单元测试 #### 加载完整的应用程序上下文 `@SpringBootTest` 注解允许加载完整的应用程序上下文,这使得可以使用 `@Autowired` 来注入由 Spring 管理的 Bean 并执行集成测试[^1]。 ```java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class MyApplicationTests { @Autowired private MyService myService; @Test public void contextLoads() { // 测试服务是否成功初始化 assertNotNull(myService); } } ``` 此代码片段展示了如何通过 `@SpringBootTest` 注解启动整个应用程序上下文,并利用 `@Autowired` 自动装配所需的组件来进行基本功能验证。 #### 配置测试环境 为了提高效率,在需要全部应用逻辑的情况下可以选择性地配置测试环境。虽然 `@SpringBootTest` 默认会加载所有的配置文件和依赖项,但在某些情况下可以通过指定属性来自定义行为: - 设置 webEnvironment 参数控制 Web 层的行为模式; - 利用 properties 或 configLocations 定义额外的应用程序设置或覆盖默认值; ```java @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = "spring.datasource.url=jdbc:h2:mem:testdb") public class CustomConfiguredTests { ... } ``` 这段示例说明了怎样调整 `webEnvironment` 和其他参数以适应同的测试需求[^2]。 #### 编写业务逻辑测试案例 当涉及到具体的服务层方法或其他内部机制,则应编写针对性更强的测试用例来确保各个模块按预期工作。这里展示了一个简单的例子,其中调用了某个假设存在的 `MyService` 类中的方法并对其返回结果进行了断言检查。 ```java @Test void testBusinessLogic() { String expectedResult = "Expected Result"; assertEquals(expectedResult, myService.performOperation()); } ``` 上述代码体现了针对特定业务操作编写的测试函数,旨在确认该操作能够正确处理输入数据并给出期望的结果[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值