场景
若依微服务版手把手教你本地搭建环境并运行前后端项目:
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