当前位置: 首页 > news >正文

@DataRedisTest测试redis从未如此丝滑

测试redis从未如此丝滑

    • 前提
    • 介绍
    • 示例
    • 总结

前提

本地需要先启动一个 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 会报错

相关文章:

  • 纯前端导出表格数据 -- csv格式 (含表格末尾的自动合计行)
  • CUDA编程(三):Hello world
  • Android RenderScript 浅谈
  • SpringBoot+vue的图书管理系统
  • Java SE 基础(3) Java语言概述
  • Spring框架说明
  • 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码
  • 大事务问题解决方案
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • Typora使用
  • ChatGPT自我分析
  • ChatGPT背后的指令学习是什么?PSU最新首篇《指令学习》技术全面综述,详述指令学习关键问题
  • 固态硬盘需要分区吗 固态硬盘怎么分区
  • Linux:进程信号
  • 解决访问客户端位nat模式服务端syn握手失败的问题
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Date型的使用
  • JavaScript 奇技淫巧
  • js数组之filter
  • Mysql5.6主从复制
  • mysql中InnoDB引擎中页的概念
  • Rancher-k8s加速安装文档
  • ReactNativeweexDeviceOne对比
  • Spring声明式事务管理之一:五大属性分析
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • windows下使用nginx调试简介
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 猴子数据域名防封接口降低小说被封的风险
  • 力扣(LeetCode)56
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 在weex里面使用chart图表
  • 栈实现走出迷宫(C++)
  • (1)STL算法之遍历容器
  • (175)FPGA门控时钟技术
  • (C语言)共用体union的用法举例
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (剑指Offer)面试题34:丑数
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .FileZilla的使用和主动模式被动模式介绍
  • .Net IOC框架入门之一 Unity
  • .net MySql
  • .net 按比例显示图片的缩略图
  • .net 设置默认首页
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net6使用WebSocket与前端进行通信
  • .NET开发不可不知、不可不用的辅助类(一)
  • .skip() 和 .only() 的使用