当前位置: 首页 > 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握手失败的问题
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • exif信息对照
  • Github访问慢解决办法
  • LeetCode18.四数之和 JavaScript
  • node学习系列之简单文件上传
  • Promise初体验
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spring Boot快速入门(一):Hello Spring Boot
  • windows-nginx-https-本地配置
  • 初识MongoDB分片
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 对象管理器(defineProperty)学习笔记
  • 翻译--Thinking in React
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊sentinel的DegradeSlot
  • 区块链技术特点之去中心化特性
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 通过几道题目学习二叉搜索树
  • 微服务框架lagom
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #NOIP 2014# day.2 T2 寻找道路
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (备忘)Java Map 遍历
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (力扣)循环队列的实现与详解(C语言)
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (一)appium-desktop定位元素原理
  • .net Application的目录
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net Web项目创建比较不错的参考文章
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源项目介绍及资源推荐:数据持久层
  • /*在DataTable中更新、删除数据*/
  • @hook扩展分析
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [ARM]ldr 和 adr 伪指令的区别