SpringBootTest注解测试service层

背景

使用@SpringBootTest注解对一个service进行单元测试,启动单元测试时会启动项目的上下文。相当于运行项目启动类后,再调用service的接口。
依赖:spring-boot-starter-test

生成单元测试类

选择要测试的serviceImpl,右键生成测试类,选择junit5
在这里插入图片描述
生成的测试类如下:

class UserPayServiceImplTest {
    
    

    @Test
    void pay() {
    
    
    }
}

加入@SpringBootTest

MyframeApplication对应项目的启动类。如果不写这个的话,下面的service就无法自动注入。
测试类启动时会先启动项目,再执行测试方法。也就是说测试类的测试依赖项目启动环境。

@SpringBootTest(
        /*MyframeApplication对应项目的启动类。如果不写这个的话,下面的service就无法自动注入。
         测试类启动时会先启动项目,再执行测试方法。也就是说测试类的测试依赖项目启动环境。*/
        classes = MyframeApplication.class,  
        /*因为测试的是service,禁用web以加快项目启动速度*/
        webEnvironment = WebEnvironment.NONE
)
class UserPayServiceImplTest {
    
    

    @Autowired
    private UserPayService userPayService; //自动注入要测试的service
    @Test
    void pay() {
    
    
        userPayService.pay(new BigDecimal(300));// 测试接口方法
    }
}

执行测试:
在这里插入图片描述
成功通过测试类进入了实际代码的断点。

猜你喜欢

转载自blog.csdn.net/mofsfely2/article/details/115247679