前提
本地需要先启动一个 redis 服务器, 端口 6379
本地已经安装java, maven
介绍
@DataRedisTest是Spring Boot提供的一个测试注解,用于测试Redis相关的功能。它提供了自动配置Redis测试环境的功能,因此在测试时无需手动配置Redis实例。
在使用@DataRedisTest注解时,Spring Boot会自动配置嵌入式Redis服务器,并在测试方法执行前清除Redis服务器中的所有数据。此外,该注解还提供了一些与Redis相关的bean的自动注入功能,比如RedisTemplate、StringRedisTemplate和ReactiveRedisTemplate等。
示例
创建一个springboot项目,
引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.6.2</version>
</dependency>
在test目录下新建一个测试类
下面是一个使用@DataRedisTest注解的示例:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.data.redis.DataRedisTest;
import org.springframework.data.redis.core.RedisTemplate;
import static org.assertj.core.api.Assertions.assertThat;
@DataRedisTest
public class RedisTest {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Test
public void testRedis() {
String key = "foo";
String value = "bar";
redisTemplate.opsForValue().set(key, value);
String retrievedValue = redisTemplate.opsForValue().get(key);
assertThat(retrievedValue).isEqualTo(value);
}
}
在上面的示例中,我们使用了@DataRedisTest注解来测试Redis操作。测试类自动配置了一个嵌入式Redis服务器,并自动注入了RedisTemplate实例。在测试方法中,我们使用RedisTemplate实例来存储和检索一个键值对,并使用assertThat断言来检查是否正确检索该值。
总结
需要注意的是,在使用@DataRedisTest注解时,我们不需要手动启动或配置Redis服务器,Spring Boot会自动处理这些事情。这使得测试Redis相关的功能变得更加容易和方便。
假的, 官方虽然这么说, 但是我本地不启动redis server 会报错