在完成java测试代码后,是否有方法回滚redis数据?

在完成java测试代码后,是否有方法回滚redis数据?,java,testing,redis,Java,Testing,Redis,在测试代码运行后,是否有某种方法可以回滚redis中的数据。 我使用SpringBoot2开发了一个JavaWeb项目 我知道redis没有提供回滚操作 所以在测试中使用另一个redis(比如一些嵌入式redis)可以确保测试代码不会更改redis数据。并制作一个模拟的redis客户端,首先在测试redis中获取数据,如果没有数据,则从源redis获取数据。 这可行吗 是否有现成的软件包实现此功能 或者有更简单的回滚方法吗?首先,您应该清楚地了解条款。或者你正在做一个真正的(狭义的)单元测试,然

在测试代码运行后,是否有某种方法可以回滚redis中的数据。 我使用SpringBoot2开发了一个JavaWeb项目

我知道redis没有提供回滚操作

所以在测试中使用另一个redis(比如一些嵌入式redis)可以确保测试代码不会更改redis数据。并制作一个模拟的redis客户端,首先在测试redis中获取数据,如果没有数据,则从源redis获取数据。 这可行吗

是否有现成的软件包实现此功能


或者有更简单的回滚方法吗?

首先,您应该清楚地了解条款。或者你正在做一个真正的(狭义的)单元测试,然后你将被测代码与任何“真正的”资源(如数据库、文件系统或远程服务器)完全解耦。换言之:然后你模拟了这种依赖关系

否则,您将进行功能测试。这里有太多的选择,无法给出有意义的答案。一个例子是


但正如所说的:真正的答案是你清楚自己的需求。您应该在较低级别上直接在被测(单个)类上进行模拟的单元测试

好的,这是功能测试。我以前读过的链接Redis Mock。它在测试代码运行时提供了一个空的嵌入式Redis,但我想获取Redis中已经存在的数据,只是不想在测试完成后更改Redis中的数据。@Yeezh为了解决这个问题,我尝试将Redis“隔离”到某种docker容器中。换句话说:创建一个测试基础设施,它可以轻松地(反复地)拉上来,而无需付出太多的努力,从一开始就提供一个众所周知的状态,然后在测试之后,作为一个整体简单地进行处理。