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));// 测试接口方法
    }
}

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

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JUnit是一个用于编写和运行单元测试的Java框架,而SpringBootTest是Spring框架提供的一个注解,用于编写和运行集成测试。下面我会简要介绍一下JUnit和SpringBootTest的概念和用法。 JUnit: JUnit是一个广泛使用的Java单元测试框架,用于编写和执行测试代码。它提供了一组用于测试代码中各个部分的注解、断言和辅助方法。通过JUnit,您可以编写独立且可重复执行的测试用例,以验证代码的正确性。JUnit测试通常关注于一个类或一个方法的行为,可以针对不同的输入和预期结果编写多个测试用例。 SpringBootTest: SpringBootTest是Spring框架中的一个注解,它提供了一种方便的方式来编写和运行集成测试。通过使用@SpringBootTest注解,您可以创建一个集成测试环境,该环境会启动完整的Spring应用程序上下文,并运行整个应用程序的集成测试。在集成测试中,您可以测试整个应用程序的各个组件之间的交互和行为,以确保它们能够正确地协同工作。 通常情况下,在编写SpringBoot应用程序时,您可以使用JUnit编写和运行单元测试来验证各个组件的功能,例如Service、Repository等。而对于整个应用程序的集成测试,您可以使用SpringBootTest注解来创建一个集成测试环境,并编写针对整个应用程序的集成测试。 需要注意的是,集成测试可能会依赖于外部资源(例如数据库、消息队列等),因此在编写和运行集成测试时,需要确保这些外部资源可用并正确配置。 希望以上信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值