首页 > 其他分享 >若依微服务版(SpringBoot/SpringCloudAlibaba)中在单个服务模块中进行单元测试

若依微服务版(SpringBoot/SpringCloudAlibaba)中在单个服务模块中进行单元测试

时间:2023-02-06 14:24:22浏览次数:56  
标签:SpringBoot RuoYiFzysApplication 单元测试 SpringBootTest org test import 依微 class

场景

若依微服务版手把手教你本地搭建环境并运行前后端项目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303

在上面的基础上需要在某个服务模块中进行单元测试。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi 

实现

1、首先在需要进行单元测试的服务模块中引入依赖spring-boot-starter-test

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

2、新建test目录/包,包名路径与src/main/java下的根包名一致

 

 

3、在src/test/java/包名下新建测试类

测试类上添加注解

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiFzysApplication.class)

这里RuoYiFzysApplication.class是对应的启动类,如果不加则有可能提示:

you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

因为我们测试类的位置跟Springboot启动类的位置对应不上,测试类启动默认会去找Springboot的启动类,

因为测试类位置改变了 所以找不到启动类。

然后如果项目中有集成的websocket则可能还会提示:

javax.websocket.server.ServerContainer not available

这是因为springbootTest启动时不会启动服务器,所以websocket就会报错,

这个时候需要在注解中添加webEnvironment,给wevsocket提供测试环境。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiFzysApplication.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

4、然后测试类中新建测试方法

    @Test
    public void test1(){
        Collection<String> keys = redisService.keys(CAR_CARD_REAL_TIME + "*");
    }

并在测试方法上他添加注解

这里以获取redis中指定前缀开头的key为例。

如果需要引入外部依赖,则需要注入并添加注解,比如这里的redisService

    @Autowired
    private RedisService redisService;

5、完整的测试类

package ruoyi.fzys;

import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.fzys.RuoYiFzysApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Collection;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiFzysApplication.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ScanNoLoginEachHourTest {

    @Autowired
    private RedisService redisService;

    public static final String CAR_CARD_REAL_TIME = "car:realTime";

    @Test
    public void test1(){
        Collection<String> keys = redisService.keys(CAR_CARD_REAL_TIME + "*");
    }
}

6、进行测试

 

 

标签:SpringBoot,RuoYiFzysApplication,单元测试,SpringBootTest,org,test,import,依微,class
From: https://www.cnblogs.com/badaoliumangqizhi/p/17095263.html

相关文章

  • Spring MVC & SpringBoot & Spring 事务
    ......
  • 单元测试内容及不测试的内容
    PS:单元测试是程序编写人员必备的一些基本素质,所有的程序人员应该把其作为自己工作内容的一部分,白盒测试人员应该加强对程序编写人员相关单元测试理论和实践经验的培训和......
  • SpringBoot整合Activiti7工作流引擎
    在Idea中安装bpnm可视化插件引入activiti依赖<!--引入Activiti7--><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-start......
  • springboot配置多个数据源
    spring:datasource:db1:driver-class-name:com.mysql.cj.jdbc.Driverjdbc-url:jdbc:mysql://127.0.0.1:3306/db1username:rootpa......
  • SpringBoot实现大文件上传/下载(分片、断点续传)
    1.SpringBoot实现大文件上传/下载(分片、断点续传)1.分片:按照自定义缓冲区大小,将大文件分成多个小文件片段。2.断点续传:根据分片数量,给每个小文件通过循环起对应名称,......
  • SpringBoot访问windows共享文件
    前言最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输SMB1.0集成jcifs类......
  • SpringBoot访问windows共享文件
    前言最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输SMB1.0集成jcifs......
  • SpringBoot测试用例的一些小技巧~
    场景一:不想因为测试而对数据库产生脏数据@TestpublicvoidtestInsert(){ Useruser=newUser(); user.setUsername("startqbb"); user.setPassword("123456"); u......
  • SpringBoot和Vue整合ECharts
    一、Vue安装EChartsnpmiecharts-S二、Vue整合ECharts其实这个很简单首先在vue中引入ECharts 2.然后我们直接去ECharts官网使用一些图形的代码,放到Home.vue中,所......
  • SpringBoot整合JDBC详解
    SpringBoot整合JDBC@​​TOC​​前言对于数据访问层,无论是关系型数据库(SQL)还是NOSQL(非关系型数据库),SpringBoot的底层都是采用SpringData的方式来进行统一处理。SpringData其......