小编典典

用于Spring Boot的嵌入式Redis

spring-boot

我在机器上的本地Redis服务器的帮助下,使用Spring Boot运行了集成测试用例。

但是我想要一个不依赖任何服务器并且可以在任何环境下运行的嵌入式Redis服务器,例如H2内存数据库。我该怎么做?

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
@SpringApplicationConfiguration(classes = Application.class) 
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public class MasterIntegrationTest {

}

阅读 1222

收藏
2020-05-30

共1个答案

小编典典

您可以使用嵌入式Redis,例如https://github.com/kstyrc/embedded-
redis

  1. 将依赖项添加到pom.xml
  2. 调整集成测试的属性,使其指向嵌入式Redis,例如:

    spring:
    

    redis:
    host: localhost
    port: 6379

  3. 实例化仅在测试中定义的组件中的嵌入式redis服务器:

    @Component
    

    public class EmbededRedis {

    @Value("${spring.redis.port}")
    private int redisPort;
    
    private RedisServer redisServer;
    
    @PostConstruct
    public void startRedis() throws IOException {
        redisServer = new RedisServer(redisPort);
        redisServer.start();
    }
    
    @PreDestroy
    public void stopRedis() {
        redisServer.stop();
    }
    

    }

2020-05-30